Ich habe ein JSON-Array in meiner Postgres-Datenbank gespeichert. Der JSon sieht so aus:
%Vor%Jetzt muss ich das Array so auswählen, dass sich jedes Element in einer anderen Zeile des Abfrageergebnisses befindet. Daher muss die SELECT-Anweisung, die ich ausführe, die Daten auf diese Weise zurückgeben:
%Vor% Ich habe versucht, die Funktion unnest()
akzeptiert jedoch nicht den jsonb
-Typ
Ich poste die Antwort, die ursprünglich von pozs geschrieben wurde, in den Kommentarbereich.
unnest()
steht für die Array-Typen von PostgreSQL.
Stattdessen kann eine der folgenden Funktionen verwendet werden:
json_array_elements(json)
(9.3 +) jsonb_array_elements(jsonb)
(9.4 +) json[b]_array_elements_text(json[b])
(9.4 +) Beispiel :
%Vor%Ausgabewert
%Vor%Hier finden Sie die Dokumentation für Version 9.4.
>Ich würde vorschlagen, den Befehl json_to_recordset in Ihrem Fall zu verwenden. Ihre SQL sollte dann sein:
%Vor%Die Ausgabe ist:
%Vor%Die Spalten (oder JSON-Schlüssel) des Beispiels können frei weiter erweitert werden.
Tags und Links arrays json postgresql