[英]How to use the key of jsonb in postgresql as a row value?
I have a table like this: 我有一张这样的桌子:
id (serial) | data (jsonb)
1 | {"a": 1, "b": 2}
2 | {"a": 3, "b": 1}
how to convert it to this table: 如何将其转换为该表:
id | dataKey | dataValue
1 | a | 1 # {"a": 1}
1 | b | 2 # {"b": 2}
2 | a | 3 # {"a": 3}
2 | b | 1 # {"b": 1}
ps. PS。 character after # is comment #后的字符为注释
Use jsonb_each().
使用jsonb_each().
with my_table(id, data) as (
values
(1, '{"a": 1, "b": 2}'::jsonb),
(2, '{"a": 3, "b": 1}')
)
select id, key, value
from my_table,
jsonb_each(data)
id | key | value
----+-----+-------
1 | a | 1
1 | b | 2
2 | a | 3
2 | b | 1
(4 rows)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.