我正在网上阅读PostgreSQL上的函数并返回结果 在此链接中:
我写了这个函数:
create or replace function brand_hierarchy(account_value int)
RETURNS table (topID INTEGER, accountId INTEGER, liveRowCount bigint,archiveRowCount bigint)
AS
$BODY$
SELECT * FROM my_client_numbers
where accountId = coalesce($1,accountId);
$BODY$
LANGUAGE sql;
哪个有效,并将结果返回到一列记录类型。 请注意,可能会返回多行。
现在回复是:
record
(1172,1172,1011,0)
(1172,1412,10,40)
.....
我希望我的结果不是作为记录而是作为多列
|---------|---------|------------|----------------|
| topID |accountId|liveRowCount|archiveRowCount |
|---------|---------|------------|----------------|
| 1172 |1172 | 1011 | 0 |
| 1172 |1412 | 10 | 40 |
有没有办法从PostgreSQL函数返回多个列
答案 0 :(得分:6)
返回表(或setof)的函数应该在FROM子句中使用:
select *
from brand_hierarchy(1234)
答案 1 :(得分:2)
我能够通过此查询按预期看到它:
SELECT * FROM brand_hierarchy (id)
答案 2 :(得分:0)
我发现了此功能crosstab
,我认为这就是您要寻找的功能
https://www.postgresql.org/docs/9.3/tablefunc.html