メインコンテンツまでスキップ
バージョン: 26.x

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)

Examples

  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 |
    +----------------------------------------------------------------+