sql >> データベース >  >> RDS >> Oracle

OracleのJSON_ARRAYAGG()関数

    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のドキュメントを参照してください。


    1. Oracleのようなmysqlの切り捨て日付フィールド

    2. SQLクロス結合

    3. ScaleGridでのCOVID-19の準備

    4. MariaDBでのTIMESTAMPADD()のしくみ