подстановка переменных, запрашивающая объект postgres jsonb - PullRequest
0 голосов
/ 08 октября 2018

Привет! Я запрашиваю объект 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" в пути поиска json, например, "b"

Любые предложения будут высоко оценены

1 Ответ

0 голосов
/ 08 октября 2018

Вы должны использовать вместо оператора ->> ->.Было нежелательное двойное цитирование:

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;
...