Oracle Databaseでは、JSON_ARRAYAGG()
関数は、SQL式の列からJSON配列を作成します。
構文
構文は次のようになります:
JSON_ARRAYAGG
( expr [ FORMAT JSON ] [ order_by_clause ]
[ JSON_on_null_clause ] [ JSON_agg_returning_clause ]
[ STRICT ]
)
場所:
-
expr
JSONオブジェクト、JSON配列、数値リテラル、テキストリテラル、またはnull
に評価されるSQL式です。 。 -
FORMAT JSON
入力文字列がJSONであるため、出力で引用符で囲まれないことを示します。 -
order_by_clause
ステートメントによって返されるJSON配列内のJSON値を並べ替えることができます。 -
JSON_on_null_clause
expr
のときに使用する動作を指定します nullと評価されます(つまり、出力にnull値を含めるか、含めないかのいずれかです)。 -
JSON_agg_returning_clause
この関数によって返される文字列のデータ型を指定します。 -
STRICT
JSON生成関数の出力が正しいJSONであるかどうかを確認します。チェックに失敗すると、構文エラーが発生します。
例
次のSQLクエリを実行するとします。
SELECT region_name
FROM regions;
そして、次の出力を返します:
REGION_NAME _________________________ Europe Americas Asia Middle East and Africa
これらすべての値をJSON配列の要素にしたい場合は、列名をJSON_ARRAYAGG()
に渡すことができます。 機能。
このように:
SELECT JSON_ARRAYAGG(region_name)
FROM regions;
結果:
["Europe","Americas","Asia","Middle East and Africa"]
節による注文
ORDER BY
の使用例を次に示します。 関数内の句:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name DESC
)
FROM regions;
結果:
["Middle East and Africa","Europe","Asia","Americas"]
この例では、配列要素を降順で並べ替えています。
ここでは昇順です:
SELECT JSON_ARRAYAGG(
region_name ORDER BY region_name ASC
)
FROM regions;
結果:
["Americas","Asia","Europe","Middle East and Africa"]
この関数の詳細については、Oracleのドキュメントを参照してください。