关于sql:Postgres plpgsql返回表和值

 2021-04-26 

Postgres plpgsql return table and value

在plpgsql函数中,我正在执行returns table,其中包含几列以返回具有几行的表。但是现在我还想返回一个单独的标量值。因此,一个单独的标量值加上几行。我该怎么办?

一个例子是

1
2
SELECT COUNT(*) FROM exampletable INTO individidual_scalar_value;
SELECT a, b, c FROM anothertable INTO several_rows LIMIT 10;


您可以对第一个表的计数使用子查询:

1
2
3
4
SELECT a, b, c, (SELECT COUNT(*) FROM exampletable)
FROM anothertable
INTO several_rows
LIMIT 10;

但是请注意,通常,不使用ORDER BY而不使用LIMIT是没有意义的,因为您没有告诉Postgres您实际上要选择哪10条记录。因此,在上面的查询中添加一个明智的ORDER BY子句以获得最佳结果。