V databázi Oracle je to JSON_ARRAYAGG() vytvoří pole JSON ze sloupce výrazů SQL.
Syntaxe
Syntaxe vypadá takto:
JSON_ARRAYAGG
( expr [ FORMAT JSON ] [ order_by_clause ]
[ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
[ STRICT ]
) Kde:
exprje jakýkoli výraz SQL, který se vyhodnotí jako objekt JSON, pole JSON, číselný literál, textový literál nebonull.FORMAT JSONoznačuje, že vstupní řetězec je JSON, a proto nebude na výstupu uveden.order_by_clauseumožňuje seřadit hodnoty JSON v rámci pole JSON vráceného příkazem.JSON_on_null_clauseurčuje chování, které se má použít, kdyžexprvyhodnotí jako null (tj. buď zahrnout hodnoty null do výstupu, nebo ne).JSON_agg_returning_clauseurčuje datový typ znakového řetězce vráceného touto funkcí.STRICTzkontroluje, zda výstup funkce generování JSON je správný JSON. Pokud kontrola selže, dojde k chybě syntaxe.
Příklad
Předpokládejme, že spustíme následující SQL dotaz:
SELECT region_name
FROM regions; A vrátí následující výstup:
REGION_NAME _________________________ Europe Americas Asia Middle East and Africa
Pokud bychom chtěli, aby všechny tyto hodnoty byly prvky v poli JSON, mohli bychom předat název sloupce do JSON_ARRAYAGG() funkce.
Takhle:
SELECT JSON_ARRAYAGG(region_name)
FROM regions; Výsledek:
["Europe","Americas","Asia","Middle East and Africa"]
Řadit podle klauzule
Zde je příklad použití ORDER BY klauzule ve funkci:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name DESC
)
FROM regions; Výsledek:
["Middle East and Africa","Europe","Asia","Americas"]
Tento příklad seřadil prvky pole v sestupném pořadí.
Zde je ve vzestupném pořadí:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name ASC
)
FROM regions; Výsledek:
["Americas","Asia","Europe","Middle East and Africa"]
Další informace o této funkci naleznete v dokumentaci Oracle.