J'utilise postgresql 9.3.4. J'ai une table avec 3 champs:
id name addr
--- ---- ----
1 n1 ad1
2 n2 ad2
...
J'ai besoin de déplacer les données vers une nouvelle table avec des champs comme:
id data
--- ----
1 {'name': 'n1', 'addr': 'ad1'}
2 {'name': 'n2', 'addr': 'ad2'}
...
row_to_json
n'est pas la solution pour moi, car cela SELECT t.id, row_to_json(t) as data FROM (select id, name, addr from myt) t
ajoute également id
au résultat. Existe-t-il un moyen de choisir les champs dont j'ai besoin (nom et adresse) dans mon champ de données?
postgresql
json
row
AliBZ
la source
la source
Réponses:
Il existe une meilleure option avec
json_build_object()
Postgres 9.4+ :Mais il existe également un moyen plus simple et plus rapide avec
row_to_json()
Postgres 9.3 :db <> fiddle here
Ancien SQL Fiddle sur Postgres 9.6.
Réponses associées:
Sélectionner des colonnes dans json_agg
Renvoyer en tant que tableau d'objets JSON en SQL (Postgres)
Renvoyer le nombre total de lignes et les données sélectionnées (agrégées)
la source
J'ai trouvé la réponse de ce lien :
la source