Я использую postgresql 9.3.4. У меня есть таблица с 3 полями:
id name addr
--- ---- ----
1 n1 ad1
2 n2 ad2
...
Мне нужно переместить данные в новую таблицу с такими полями:
id data
--- ----
1 {'name': 'n1', 'addr': 'ad1'}
2 {'name': 'n2', 'addr': 'ad2'}
...
row_to_json
это не решение для меня, а SELECT t.id, row_to_json(t) as data FROM (select id, name, addr from myt) t
добавляет id
к результату. Есть ли способ выбрать поля, которые мне нужны (имя и адрес) в моем поле данных?
postgresql
json
row
AliBZ
источник
источник
Ответы:
В
json_build_object()
Postgres 9.4+ есть лучший вариант :Но
row_to_json()
в Postgres 9.3 также есть более простой и быстрый способ :db <> fiddle here
Старая скрипта SQL на Postgres 9.6.
Связанные ответы:
Выберите столбцы внутри json_agg
Возврат в виде массива объектов JSON в SQL (Postgres)
Возвращает общее количество строк и выбранных (агрегированных) данных
источник
Я нашел ответ по этой ссылке :
источник