Перейти к содержимому
Последнее обновление

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