In der Oracle-Datenbank das JSON_ARRAYAGG()
Funktion erstellt ein JSON-Array aus einer Spalte von SQL-Ausdrücken.
Syntax
Die Syntax lautet wie folgt:
JSON_ARRAYAGG
( expr [ FORMAT JSON ] [ order_by_clause ]
[ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
[ STRICT ]
)
Wo:
expr
ist ein beliebiger SQL-Ausdruck, der zu einem JSON-Objekt, einem JSON-Array, einem numerischen Literal, einem Textliteral odernull
ausgewertet wird .FORMAT JSON
gibt an, dass die Eingabezeichenfolge JSON ist und daher in der Ausgabe nicht in Anführungszeichen gesetzt wird.order_by_clause
ermöglicht es Ihnen, die JSON-Werte innerhalb des von der Anweisung zurückgegebenen JSON-Arrays zu ordnen.JSON_on_null_clause
gibt das zu verwendende Verhalten an, wennexpr
wird zu null ausgewertet (d. h. entweder Nullwerte in die Ausgabe aufnehmen oder nicht).JSON_agg_returning_clause
gibt den Datentyp der von dieser Funktion zurückgegebenen Zeichenfolge an.STRICT
prüft, ob die Ausgabe der JSON-Generierungsfunktion korrektes JSON ist oder nicht. Schlägt die Prüfung fehl, wird ein Syntaxfehler ausgegeben.
Beispiel
Angenommen, wir führen die folgende SQL-Abfrage aus:
SELECT region_name
FROM regions;
Und es gibt die folgende Ausgabe zurück:
REGION_NAME _________________________ Europe Americas Asia Middle East and Africa
Wenn wir wollten, dass all diese Werte Elemente in einem JSON-Array sind, könnten wir den Spaltennamen an JSON_ARRAYAGG()
übergeben Funktion.
So:
SELECT JSON_ARRAYAGG(region_name)
FROM regions;
Ergebnis:
["Europe","Americas","Asia","Middle East and Africa"]
Order By-Klausel
Hier ist ein Beispiel für die Verwendung von ORDER BY
-Klausel innerhalb der Funktion:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name DESC
)
FROM regions;
Ergebnis:
["Middle East and Africa","Europe","Asia","Americas"]
In diesem Beispiel wurden die Array-Elemente in absteigender Reihenfolge sortiert.
Hier in aufsteigender Reihenfolge:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name ASC
)
FROM regions;
Ergebnis:
["Americas","Asia","Europe","Middle East and Africa"]
Weitere Informationen zu dieser Funktion finden Sie in der Oracle-Dokumentation.