Ich lasse postgresql 9.3.4 laufen. Ich habe eine Tabelle mit 3 Feldern:
id name addr
--- ---- ----
1 n1 ad1
2 n2 ad2
...
Ich muss die Daten in eine neue Tabelle mit folgenden Feldern verschieben:
id data
--- ----
1 {'name': 'n1', 'addr': 'ad1'}
2 {'name': 'n2', 'addr': 'ad2'}
...
row_to_json
ist nicht die Lösung für mich , da SELECT t.id, row_to_json(t) as data FROM (select id, name, addr from myt) t
fügt id
auch auf das Ergebnis. Gibt es eine Möglichkeit, die benötigten Felder (Name & Adresse) in meinem Datenfeld auszuwählen?
postgresql
json
row
AliBZ
quelle
quelle
Antworten:
json_build_object()
In Postgres 9.4+ gibt es eine bessere Option :Aber es gibt auch einen einfacheren und schnelleren Weg mit
row_to_json()
Postgres 9.3 :db <> hier fummeln
Old SQL Fiddle auf Postgres 9.6.
Verwandte Antworten:
Wählen Sie Spalten in json_agg aus
Rückgabe als Array von JSON-Objekten in SQL (Postgres)
Gibt die Gesamtzahl der Zeilen und ausgewählten (aggregierten) Daten zurück
quelle
Ich habe die Antwort über diesen Link gefunden :
quelle