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

空表场景下使用json_agg查询如何返回无行?

解决PostgreSQL空表时json_agg返回无行的问题

当表t为空时,原查询SELECT json_agg(t) FROM t会返回一行结果(值为[null]),若要让此时返回无行(0行结果),可以通过添加HAVING子句过滤空表场景:

SELECT json_agg(t) FROM t
HAVING count(*) > 0;

原理说明

json_agg作为聚合函数,即使输入数据集为空,也会生成一行包含空数组(或[null])的结果。通过HAVING count(*) > 0,我们只保留表中存在至少一行数据的情况:当表为空时,count(*)为0,不满足HAVING条件,因此不会返回任何行;当表中有数据时,正常返回聚合后的JSON数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:14:51