メインコンテンツまでスキップ

JSON_EXTRACT_LARGEINT

説明

JSON_EXTRACT_LARGEINTは、JSONオブジェクトから<json_path>で指定されたフィールドを抽出し、LARGEINT型に変換します。

構文

JSON_EXTRACT_LARGEINT(<json_object>, <json_path>)

パラメータ

  • <json_object>: JSON型、抽出対象のパラメータ。
  • <json_path>: String型、対象JSONから対象要素を抽出するためのJSONパス。

戻り値

Nullable(LARGEINT) 抽出されたLARGEINT値を返す。一部のケースではNULLを返す

使用上の注意

  1. <json_object> または <json_path> がNULLの場合、NULLを返す。

  2. <json_path> で指定された要素が存在しない場合、NULLを返す。

  3. <json_path> で指定された要素をLARGEINTに変換できない場合、NULLを返す。

  4. その動作は「cast + json_extract」と一致しており、以下と等価である:

    CAST(JSON_EXTRACT(<json_object>, <json_path>) as LARGEINT)

  1. 通常のパラメータ

    SELECT json_extract_largeint('{"id": 11529215046068469760, "name": "doris"}', '$.id');
    +--------------------------------------------------------------------------------+
    | json_extract_largeint('{"id": 11529215046068469760, "name": "doris"}', '$.id') |
    +--------------------------------------------------------------------------------+
    | 11529215046068469760 |
    +--------------------------------------------------------------------------------+
  2. パスが存在しない場合

    SELECT json_extract_largeint('{"id": 11529215046068469760, "name": "doris"}', '$.id2');
    +---------------------------------------------------------------------------------+
    | json_extract_largeint('{"id": 11529215046068469760, "name": "doris"}', '$.id2') |
    +---------------------------------------------------------------------------------+
    | NULL |
    +---------------------------------------------------------------------------------+
  3. NULLパラメータ

    SELECT json_extract_largeint('{"id": 11529215046068469760, "name": "doris"}', NULl);
    +------------------------------------------------------------------------------+
    | json_extract_largeint('{"id": 11529215046068469760, "name": "doris"}', NULl) |
    +------------------------------------------------------------------------------+
    | NULL |
    +------------------------------------------------------------------------------+
    SELECT json_extract_largeint(NULL, '$.id2');
    +--------------------------------------+
    | json_extract_largeint(NULL, '$.id2') |
    +--------------------------------------+
    | NULL |
    +--------------------------------------+
  4. LARGEINTへの変換が不可能な場合

    SELECT json_extract_largeint('{"id": 123, "name": "doris"}','$.name');
    +----------------------------------------------------------------+
    | json_extract_largeint('{"id": 123, "name": "doris"}','$.name') |
    +----------------------------------------------------------------+
    | NULL |
    +----------------------------------------------------------------+