In Oracle Database, de JSON_ARRAYAGG() functie maakt een JSON-array uit een kolom met SQL-expressies.
Syntaxis
De syntaxis gaat als volgt:
JSON_ARRAYAGG
( expr [ FORMAT JSON ] [ order_by_clause ]
[ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
[ STRICT ]
) Waar:
expris een SQL-expressie die evalueert naar een JSON-object, een JSON-array, een numerieke letterlijke waarde, een letterlijke tekst ofnull.FORMAT JSONgeeft aan dat de invoerreeks JSON is en daarom niet in de uitvoer wordt geciteerd.order_by_clausestelt u in staat om de JSON-waarden te ordenen binnen de JSON-array die door de instructie wordt geretourneerd.JSON_on_null_clausespecificeert het gedrag dat moet worden gebruikt wanneerexprevalueert naar null (d.w.z. neem null-waarden op in de uitvoer of niet).JSON_agg_returning_clausespecificeert het gegevenstype van de tekenreeks die door deze functie wordt geretourneerd.STRICTcontroleert of de uitvoer van de JSON-generatiefunctie de juiste JSON is. Als de controle mislukt, wordt er een syntaxisfout gegenereerd.
Voorbeeld
Stel dat we de volgende SQL-query uitvoeren:
SELECT region_name
FROM regions; En het geeft de volgende output:
REGION_NAME _________________________ Europe Americas Asia Middle East and Africa
Als we willen dat al die waarden elementen in een JSON-array zijn, kunnen we de kolomnaam doorgeven aan de JSON_ARRAYAGG() functie.
Zoals dit:
SELECT JSON_ARRAYAGG(region_name)
FROM regions; Resultaat:
["Europe","Americas","Asia","Middle East and Africa"]
Bestel per clausule
Hier is een voorbeeld van het gebruik van de ORDER BY clausule binnen de functie:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name DESC
)
FROM regions; Resultaat:
["Middle East and Africa","Europe","Asia","Americas"]
Dat voorbeeld sorteerde de array-elementen in aflopende volgorde.
Hier is het in oplopende volgorde:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name ASC
)
FROM regions; Resultaat:
["Americas","Asia","Europe","Middle East and Africa"]
Zie de Oracle-documentatie voor meer informatie over deze functie.