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:
exprist ein beliebiger SQL-Ausdruck, der zu einem JSON-Objekt, einem JSON-Array, einem numerischen Literal, einem Textliteral odernullausgewertet wird .FORMAT JSONgibt an, dass die Eingabezeichenfolge JSON ist und daher in der Ausgabe nicht in Anführungszeichen gesetzt wird.order_by_clauseermöglicht es Ihnen, die JSON-Werte innerhalb des von der Anweisung zurückgegebenen JSON-Arrays zu ordnen.JSON_on_null_clausegibt das zu verwendende Verhalten an, wennexprwird zu null ausgewertet (d. h. entweder Nullwerte in die Ausgabe aufnehmen oder nicht).JSON_agg_returning_clausegibt den Datentyp der von dieser Funktion zurückgegebenen Zeichenfolge an.STRICTprü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.