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

JSON_EXTRACT_INT

概要

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

構文

JSON_EXTRACT_INT(<json_object>, <json_path>)

パラメータ

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

戻り値

Nullable(INT) 抽出されたINT値を返す。場合によってはNULLを返す

使用上の注意

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

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

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

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

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

  1. 通常のパラメータ

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

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

    SELECT json_extract_int('{"id": 123, "name": "doris"}', NULl);
    +--------------------------------------------------------+
    | json_extract_int('{"id": 123, "name": "doris"}', NULl) |
    +--------------------------------------------------------+
    | NULL |
    +--------------------------------------------------------+
    SELECT json_extract_int(NULL, '$.id2');
    +---------------------------------+
    | json_extract_int(NULL, '$.id2') |
    +---------------------------------+
    | NULL |
    +---------------------------------+
  4. INTへの変換ができない場合

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