JSONB в таблицу в Postgres - PullRequest
0 голосов
/ 26 мая 2020

Я новичок и все еще учусь.

У меня есть таблица в формате jsonB:

jsonb input

И мне нужно выводить примерно так:

Output

Есть простой способ сделать это. В jsonb около 100 ключей. Таким образом, он будет преобразован в 100 столбцов.

Есть ли способ сделать это динамически. Я имею в виду, что если количество столбцов или имя столбца изменится, нет необходимости обновлять запрос.

1 Ответ

1 голос
/ 26 мая 2020

Нет,

Для каждого ключа нужно создать столбец. Чтобы получить все перечисленные ключи, вы можете использовать эту команду:

select 
    jsonb_object_keys(u) 
from YOURTABLE;

После получения списка ключей я предлагаю вам использовать текстовый редактор, чтобы упростить процесс. См. Этот пост , безусловно, вам поможет.

После создания вашего шаблона вам нужно будет сделать что-то вроде этого:

SELECT 
   id, 
   u->'prb0' as prb0,
   u->'prb1' as prb1,
   u->'prb1' as prb2,
   ....
FROM YOUR_TABLE;

Я настоятельно рекомендую вам создать промежуточный таблица для хранения этого запроса и упрощения дальнейших запросов.

...