一尘不染

从函数PostgreSQL返回多个列和行,而不是记录

sql

我在网上阅读有关PostgreSQL函数的信息,并返回结果。在此链接中:

  1. SQL函数返回类型:TABLE vs SETOF记录
  2. 如何在Postgres sql函数中引用命名参数?
  3. http://www.postgresqltutorial.com/plpgsql-function-returns-a-table/

我已经写了这个功能:

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函数返回多列


阅读 177

收藏
2021-03-17

共1个答案

一尘不染

我可以通过以下查询看到它:

SELECT * FROM brand_hierarchy (id)
2021-03-17