如何显示 PostgreSQL 函数返回的列标题?
Posted
技术标签:
【中文标题】如何显示 PostgreSQL 函数返回的列标题?【英文标题】:How to display column headers returned by PostgreSQL function? 【发布时间】:2017-06-14 03:05:56 【问题描述】:我有以下 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
我正在查看 CREATE FUNCTION 文档页面,但不清楚如何执行此操作。我也在网上搜索过,也没有看到讨论这个的文章。
【问题讨论】:
【参考方案1】:在FROM
子句中使用您设置的返回函数
SELECT * FROM userbyid(1);
相对
SELECT userbyid(1);
这里是dbfiddle演示
样本输出:
编号 |用户名 |电子邮件 |上次登录 ----+----------+--------------------+-------------- ---------- 1 |用户1 | user1@example.com | 2017-06-13 12:00:00-04【讨论】:
【参考方案2】:您可以在查询中使用“as”。 选择id作为id,username作为用户名....
【讨论】:
“as”对我有用:SELECT ar.invnumber as "Inv No", ar.amount as "Inv Total", ar.transdate as "Inv Date", customer.name as "Customer", acc_trans.amount as "Amount Recd", acc_trans.transdate as "Date Recd"
以上是关于如何显示 PostgreSQL 函数返回的列标题?的主要内容,如果未能解决你的问题,请参考以下文章