没有值时,我可以有一个空数组?

问题描述 投票:0回答:1
我使用json_build_object,它向我显示了:

[{"id" : null, "name" : null, "tag_id" : null}]
但我想在没有找到任何东西时显示一个空数组并删除所有null值

我可以做什么?

SELECT l.id, JSON_AGG(JSON_BUILD_OBJECT('id', la.id, 'name', la.name, 'lag_id', la.lag_id)) as attr_groups FROM location l LEFT JOIN location_attr_groups lag ON lag.id = l.l_attr_group_id LEFT JOIN location_attr la ON la.lag_id = lag.id

我尝试了JSON_STRIP_NULLS,但它显示了此

[{}]

这不是一个空的阵列

postgresql
1个回答
0
投票
jsonb

而不是

json
。然后您可以写:
jsonb_agg(NULLIF(jsonb_strip_nulls(jsonb_build_object(...)), '{}'))

NULLIF

不适用于

json
,因为该类型没有平等运算符。
	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.