You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL使用array_agg拼接字段时空值返回null如何解决?

问题原因

标准SQL中||字符串拼接运算符的特性是任意一个操作数为NULL时,整个拼接结果都会返回NULL,这就是你遇到聚合结果为NULL的根因。

解决方案

使用COALESCE函数提前将字段的NULL值替换为你需要输出的'null'字符串后再做拼接即可,修改后的SQL如下:

SELECT 
t.userId,
array_agg(COALESCE(t.column1, 'null') || ';' || COALESCE(t.column2, 'null')) as aggregated        
FROM
mytable t
GROUP BY
t.userId

说明

COALESCE函数会按顺序返回参数列表中第一个非NULL的值,所以当column1或column2为NULL时,会自动替换为字符串'null'再拼接,最终输出结果完全匹配你要求的「column1;column2」、「null;column2」、「column1;null」格式。

内容的提问来源于stack exchange,提问作者strangeQuirks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:24:02