Ich habe ein JSON-Array in meiner Postgres-Datenbank gespeichert. Der json sieht so aus:
[
{
"operation": "U",
"taxCode": "1000",
"description": "iva description",
"tax": "12"
},
{
"operation": "U",
"taxCode": "1001",
"description": "iva description",
"tax": "12"
},
{
"operation": "U",
"taxCode": "1002",
"description": "iva description",
"tax": "12"
}
]
Jetzt muss ich das Array so auswählen, dass sich jedes Element in einer anderen Zeile des Abfrageergebnisses befindet. Die von mir ausgeführte SELECT-Anweisung muss die Daten also folgendermaßen zurückgeben:
data
--------------------------------------------------------------------------------------
{ "operation": "U", "taxCode": "1000", "description": "iva description", "tax":"12"}
{ "operation": "U", "taxCode": "1001", "description": "iva description", "tax":"12"}
{ "operation": "U", "taxCode": "1002", "description": "iva description", "tax":"12"}
Ich habe versucht, die unnest()
Funktion zu verwenden
SELECT unnest(json_data::json)
FROM my_table
aber es akzeptiert den jsonb
Typ nicht
unnest()
ist für die Array-Typen von PostgreSQL. Verwenden Siejson_array_elements(json)
(9.3+),jsonb_array_elements(jsonb)
(9.4+) oderjson[b]_array_elements_text(json[b])
(9.4+)