如果我array_agg
用来收集姓名,我会用逗号分隔我的姓名,但如果有一个null
值,该 null 也将作为聚合中的名称。例如 :
SELECT g.id,
array_agg(CASE WHEN g.canonical = 'Y' THEN g.users ELSE NULL END) canonical_users,
array_agg(CASE WHEN g.canonical = 'N' THEN g.users ELSE NULL END) non_canonical_users
FROM groups g
GROUP BY g.id;
它返回,Larry,Phil
而不是仅仅返回Larry,Phil
(在我的 9.1.2 中,它显示NULL,Larry,Phil
)。
相反,如果我使用string_agg()
,它只显示名称(没有空逗号或空值)。
问题是我已经Postgres 8.4
安装在服务器上,并且string_agg()
在那里不起作用。有什么方法可以让 array_agg 工作类似于 string_agg() ?