我想使用psql查询查找jsonb值中是否存在特定路径。
例如,对于此路径:{“333”:“opc”:[“1333”]}
此值应返回true: '{ “333”:{ “OPC”:[{ “1333”: “3787”}]}}'
但是这些值应该返回false:
我尝试使用@>进行了一些变化。运算符,但无法获得正确的语法。
ex:选择
'{“333”:{“opc”:[{“1333”:“3787”},{“1334”:“37”}}}}':: jsonb @>
'{ “333”:{ “OPC”:[{ “1333”}]}}' :: jsonb
这给了我一个无效的语法错误
答案 0 :(得分:0)
怎么样
select
case when
(select e->'1333' from json_array_elements(data->'333'->'opc') e) is not null
then true
else false
end as status
from t
;