JsonData |
---|
{目的地列表:[{quot;名称":"弹弓射击","目的地":[{quot;Id"4155},{quot:191},{;Id;:165},{"> |
{目的地列表:[{quot;名称":TVNZ,Mediaworks,Choice"5}]]} |
{目的地列表:[{quot;名称":"第二次测试","目的地":[{quot;Id"103},{quot:105}]},{quotquot;姓名"> |
您可以将json_array_elements
与子查询一起使用,以确定"destinations"
键的数组中是否包含任何空Id
值:
select json_build_object('DestinationLists',
(select array_to_json(
array_agg(
case when not exists (select 1 from json_array_elements(v.value -> 'destinations') v1
where (v1.value -> 'Id')::text = 'null')
then v.value::jsonb
else jsonb_set(v.value::jsonb, '{destinations}'::text[], '[]'::jsonb) end
)
)
from json_array_elements(d1.js -> 'DestinationLists') v)
)
from data d1
输出:
JsonData |
---|
{目的地列表:[{quot;名称":"弹弓射击","目的地":[{quot;Id"4155},{quot:191},{;Id;:165},{"> |
《目的地列表》:[《TVNZ》、《Mediaworks》、《Choice》、《destination》:[]}、《TVNZ》、《Discovery》、《Destination》:[> |
{目的地列表:[{quot;名称":"第二次测试","目的地":[{quot;Id"103},{quot:105}]},{quotquot;姓名"> |