如何显示 PostgreSQL 函数返回的列标题



我有以下PostgreSQL函数,它从一个表中返回多列:

CREATE OR REPLACE FUNCTION userbyid(id integer)
RETURNS TABLE(id int, username character varying(30), email character varying(254), last_login timestamp with time zone) AS
$$
SELECT
    id,
    username,
    email,
    last_login
FROM
    auth_user
WHERE
    id = $1;
$$
LANGUAGE 'sql';

它返回的结果如下所示:

                        userbyid
--------------------------------------------------------------
(2, smith, smith@example.com, "2017-06-04 19:47:49.472259+00")

是否可以使用正确的列标题显示输出,如下所示:

id         username       email               last_login
--------------------------------------------------------------
2          smith          smith@example.com   2017-06-04

我正在查看创建函数文档页面,但不清楚如何执行此操作。 我也在网上搜索过,没有看到一篇讨论这个问题的文章。

FROM 子句中使用集合返回函数

SELECT * FROM userbyid(1);

而不是

SELECT userbyid(1);

这是 dbfiddle 演示

示例输出:

 身份证 |用户名 |      电子邮件 |      last_login----+----------+-------------------+------------------------  1 |用户1 |user1@example.com |2017-06-13 12:00:00-04

你需要格式化PostgreSQL以显示列头;设置它:

\t

这可以在 PSQL 帮助中看到

\?

您可以在

查询中使用"as"。选择"Id"作为"ID",选择"用户名"作为用户名。

最新更新