Estou executando o postgresql 9.3.4. Eu tenho uma tabela com 3 campos:
id name addr
--- ---- ----
1 n1 ad1
2 n2 ad2
...
Eu preciso mover os dados para uma nova tabela com campos como:
id data
--- ----
1 {'name': 'n1', 'addr': 'ad1'}
2 {'name': 'n2', 'addr': 'ad2'}
...
row_to_json
não é a solução para mim, pois SELECT t.id, row_to_json(t) as data FROM (select id, name, addr from myt) t
contribui id
para o resultado também. Existe uma maneira de escolher os campos que eu preciso (nome e endereço) no meu campo de dados?
postgresql
json
row
AliBZ
fonte
fonte
Respostas:
Existe uma opção melhor
json_build_object()
no Postgres 9.4+ :Mas também existe uma maneira mais simples e rápida
row_to_json()
no Postgres 9.3 :db <> fiddle aqui
Old SQL Fiddle no Postgres 9.6.
Respostas relacionadas:
Selecionar colunas dentro de json_agg
Retornar como matriz de objetos JSON no SQL (Postgres)
Retornar número total de linhas e dados selecionados (agregados)
fonte
Encontrei a resposta neste link :
fonte