Ich möchte die row_to_json(row)
Funktion verwenden, um ein JSON-Objekt in der Datenbank direkt zu erstellen. Dies funktioniert wie erwartet:Wie erstellt man eine Zeile ohne die Spaltennamen zu verlieren, für die Eingabe von row_to_json?
select row_to_json(country) from country
Es gibt so etwas wie:
[
{"identifier": 1234, "name": "US"},
{"identifier": 5678, "name": "France"},
....
]
Wenn jedoch manuell eine Reihe zu schaffen, verliere ich die Spaltennamen. Zum Beispiel kann die folgende Abfrage:
select row_to_json(row(country.identifier, country.name)) from country
gibt:
[
{"f1": 1234, "f2": "US"},
{"f1": 5678, "f2": "France"},
....
]
Dieses Konstrukt verliert die Spaltennamen. Ich brauche diese Spaltennamen in meiner Ausgabe.
fand ich eine Lösung:
with country as (select identifier, name from country)
select row_to_json(country) from country
Gibt es eine Möglichkeit, dies direkt zu tun - das heißt, ohne einen CTE?
Ich hoffte, es ist etwas weniger ungeschickt oder sich wiederholende war. .. schade. Danke für die Alternativen! –