JSONB到Postgres中的表

时间:2020-05-26 04:14:21

标签: postgresql jsonb

我是新手,还在学习。

我有一个jsonB格式的表:

jsonb input

我需要输出为:

Output

有没有简单的方法可以做到这一点。 jsonb有大约100个密钥。因此它将被转换为100列。

有没有办法动态地做到这一点。我的意思是,如果列数或列名更改,则无需更新查询。

1 个答案:

答案 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;

我强烈建议您创建一个中间表来存储此查询,并使其更易于进行进一步的查询。

相关问题