我是新手,还在学习。
我有一个jsonB格式的表:
我需要输出为:
有没有简单的方法可以做到这一点。 jsonb有大约100个密钥。因此它将被转换为100列。
有没有办法动态地做到这一点。我的意思是,如果列数或列名更改,则无需更新查询。
答案 0 :(得分:1)
否,
您需要为每个键创建一个列。要列出所有密钥,可以使用以下命令:
select
jsonb_object_keys(u)
from YOURTABLE;
获得键列表后,建议您使用文本编辑器,以简化该过程。看到这个post肯定会对您有所帮助。
创建模板后,您需要执行以下操作:
SELECT
id,
u->'prb0' as prb0,
u->'prb1' as prb1,
u->'prb1' as prb2,
....
FROM YOUR_TABLE;
我强烈建议您创建一个中间表来存储此查询,并使其更易于进行进一步的查询。