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

时间:2017-06-14 03:05:57

标签: sql postgresql

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

Exception in thread "main" javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

它返回的结果如下所示:

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")

我正在查看CREATE FUNCTION文档页面,但目前还不清楚如何执行此操作。我也在网上搜索过,但没有看过一篇讨论此内容的文章。

2 个答案:

答案 0 :(得分:0)

您可以在查询中使用“as”。 选择ID为id,用户名为username ....

答案 1 :(得分:0)

FROM子句

中使用set return函数
SELECT * FROM userbyid(1);

而不是

SELECT userbyid(1);

以下是dbfiddle演示

示例输出:

 id | username |       email       |       last_login
----+----------+-------------------+------------------------
  1 | user1    | user1@example.com | 2017-06-13 12:00:00-04