postgresql 将 jsonb 转换为记录集

postgresql convert jsonb to set of records

在将 jsonb 转换为所需的 table 类型时遇到问题,我们将不胜感激。

我的jsonb是:

{"left": ["ICMB", "IPERIOD", "IADDR", "KV"]}

我想将其转换为:

position   element
left       ICMB
left       IPERIOD
left       IADDR
left       KV

提前致谢!

使用jsonb_each() and jsonb_array_elements_text():

with my_data(j) as (
values
('{"left": ["ICMB", "IPERIOD", "IADDR", "KV"]}'::jsonb)
)

select key as position, element
from my_data,
lateral jsonb_each(j) as each(key, val),
lateral jsonb_array_elements_text(j->key) as element;

 position | element 
----------+---------
 left     | ICMB
 left     | IPERIOD
 left     | IADDR
 left     | KV
(4 rows)