变量替换查询postgres jsonb对象

时间:2018-10-08 10:54:53

标签: postgresql jsonb

嗨,我正在查询一个JSONb对象,其中搜索键取决于另一个键/值对的值。考虑以下示例:

select 
'{"a":"b","b":2}'::jsonb->'a',--b,
('{"a":"b","b":2}'::jsonb->'a')::text,--"b"
'{"a":"b","b":2}'::jsonb->('{"a":"b","b":2}'::jsonb->'a')::text--null, desired output is 2

我需要以某种方式将“ b”解引用到诸如“ b”之类的json搜索路径中

任何建议将不胜感激

1 个答案:

答案 0 :(得分:0)

您应该使用->>运算符代替->。有多余的双引号:

select 
'{"a":"b","b":2}'::jsonb->'a',--b,
 ('{"a":"b","b":2}'::jsonb->>'a')::text,--"b"
'{"a":"b","b":2}'::jsonb->('{"a":"b","b":2}'::jsonb->>'a')::text;