如果没有行,则函数array_agg()
将返回null
。如何更改此项以便不返回任何行?例如,采用以下简单查询:
select array_agg(country)
from country
where false
这将返回值为null
的一行。我想没有返回任何行。
答案 0 :(得分:2)
使用HAVING
子句删除空数组:
[local] #= select array_agg(1) from a where false;
┌───────────┐
│ array_agg │
├───────────┤
│ (null) │
└───────────┘
(1 row)
[local] #= select array_agg(1) from a where false having array_agg(1) <> '{}';
┌───────────┐
│ array_agg │
├───────────┤
└───────────┘
(0 rows)