获取JSONB列POSTGRESQL中的嵌套值
我有一个带有jsonb列的表获取JSONB列POSTGRESQL中的嵌套值,postgresql,jsonb,Postgresql,Jsonb,我有一个带有jsonb列的表guest\u group。我想查询一个ID,其中ID\u Context等于protelIO 以下是表格的列: [ { "protelSurname":"Smith", "servicio_tags":[ "protel-info" ], "protelUniqueID":"[{\"ID\":\"294623726\",\"Type\":\"21\",\"ID_Context\":\"GHA\"
guest\u group
。我想查询一个ID,其中ID\u Context
等于protelIO
以下是表格的列:
[
{
"protelSurname":"Smith",
"servicio_tags":[
"protel-info"
],
"protelUniqueID":"[{\"ID\":\"294623726\",\"Type\":\"21\",\"ID_Context\":\"GHA\"},{\"ID\":\"4842148\",\"Type\":\"1\",\"ID_Context\":\"protelIO\"}]",
"protelGivenName":"Seth"
},
{
"value":"test",
"display_name":"Traces",
"servicio_tags":[
"trace"
]
}
]
我的尝试:
SELECT field ->>'protelUniqueID'
FROM guest_group gg
cross join lateral
jsonb_array_elements(custom_fields) AS field
WHERE value @> '{"servicio_tags": ["protel-info"]}'::jsonb
这给了我:
[{“ID”:“294623726”,“Type”:“21”,“ID_上下文”:“GHA”},{“ID”:“4842148”,“Type”:“1”,“ID_上下文”:“protelIO”}]
我如何才能走完最后一英里,只获得带有值密钥对的ID
密钥的值“ID\u Context”:“protelIO”
我感谢你的帮助 我想这会让你得到想要的结果。可能不太漂亮:-)
select * from (select jsonb_array_elements(f) from (
select (field ->>'protelUniqueID')::jsonb f
FROM guest_group gg,
lateral jsonb_array_elements(custom_fields) AS field
WHERE value @> '{"servicio_tags": ["protel-info"]}'::jsonb
) d(f)) dd(x)
where x->>'ID_Context'='protelIO';