I Oracle Database, JSON_ARRAYAGG() funktionen skapar en JSON-array från en kolumn med SQL-uttryck.
Syntax
Syntaxen ser ut så här:
JSON_ARRAYAGG
( expr [ FORMAT JSON ] [ order_by_clause ]
[ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
[ STRICT ]
) Var:
exprär vilket SQL-uttryck som helst som utvärderas till ett JSON-objekt, en JSON-array, en numerisk literal, en text literal ellernull.FORMAT JSONindikerar att indatasträngen är JSON och kommer därför inte att citeras i utdata.order_by_clauselåter dig beställa JSON-värdena inom JSON-matrisen som returneras av satsen.JSON_on_null_clauseanger beteendet som ska användas närexprutvärderas till null (dvs. inkluderar antingen nollvärden i utdata eller inte).JSON_agg_returning_clauseanger datatypen för teckensträngen som returneras av den här funktionen.STRICTkontrollerar om utdata från JSON-genereringsfunktionen är korrekt JSON. Om kontrollen misslyckas uppstår ett syntaxfel.
Exempel
Anta att vi kör följande SQL-fråga:
SELECT region_name
FROM regions; Och det returnerar följande utdata:
REGION_NAME _________________________ Europe Americas Asia Middle East and Africa
Om vi ville att alla dessa värden skulle vara element i en JSON-array kunde vi skicka kolumnnamnet till JSON_ARRAYAGG() funktion.
Så här:
SELECT JSON_ARRAYAGG(region_name)
FROM regions; Resultat:
["Europe","Americas","Asia","Middle East and Africa"]
Beställ enligt klausul
Här är ett exempel på hur du använder ORDER BY sats i funktionen:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name DESC
)
FROM regions; Resultat:
["Middle East and Africa","Europe","Asia","Americas"]
Det exemplet sorterade arrayelementen i fallande ordning.
Här är det i stigande ordning:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name ASC
)
FROM regions; Resultat:
["Americas","Asia","Europe","Middle East and Africa"]
Se Oracle-dokumentationen för mer information om den här funktionen.