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

JSON_EXTRACT_DOUBLE

Описание​

JSON_EXTRACT_DOUBLE извлекает поле, указанное в <json_path>, из объекта JSON и преобразует его к типу DOUBLE.

Синтаксис​

JSON_EXTRACT_DOUBLE(<json_object>, <json_path>)

Параметры​

  • <json_object>: параметр типа JSON, из которого извлекается значение.
  • <json_path>: параметр типа String, задающий путь к нужному элементу в исходном JSON.

Возвращаемое значение​

Nullable(DOUBLE) Возвращает извлечённое значение типа DOUBLE; в некоторых случаях возвращает NULL.

Примечания по использованию​

  1. Если <json_object> или <json_path> имеет значение NULL, возвращает NULL.
  2. Если элемент, указанный в <json_path>, не существует, возвращает NULL.
  3. Если элемент, указанный в <json_path>, невозможно преобразовать к типу DOUBLE, возвращает NULL.
  4. Поведение соответствует "cast + json_extract", что эквивалентно следующему:
    CAST(JSON_EXTRACT(<json_object>, <json_path>) as DOUBLE)

Примеры​

  1. Обычные параметры
    SELECT json_extract_double('{"id": 123.345, "name": "doris"}', '$.id');
    +-----------------------------------------------------------------+
    | json_extract_double('{"id": 123.345, "name": "doris"}', '$.id') |
    +-----------------------------------------------------------------+
    | 123.345 |
    +-----------------------------------------------------------------+
  2. Путь не существует
    SELECT json_extract_double('{"id": 123.345, "name": "doris"}', '$.id2');
    +------------------------------------------------------------------+
    | json_extract_double('{"id": 123.345, "name": "doris"}', '$.id2') |
    +------------------------------------------------------------------+
    | NULL |
    +------------------------------------------------------------------+
  3. Параметры со значением NULL
    SELECT json_extract_double('{"id": 123.345, "name": "doris"}', NULl);
    +---------------------------------------------------------------+
    | json_extract_double('{"id": 123.345, "name": "doris"}', NULl) |
    +---------------------------------------------------------------+
    | NULL |
    +---------------------------------------------------------------+
    SELECT json_extract_double(NULL, '$.id2');
    +------------------------------------+
    | json_extract_double(NULL, '$.id2') |
    +------------------------------------+
    | NULL |
    +------------------------------------+
  4. Преобразование к типу DOUBLE невозможно
    SELECT json_extract_double('{"id": 123, "name": "doris"}','$.name');
    +--------------------------------------------------------------+
    | json_extract_double('{"id": 123, "name": "doris"}','$.name') |
    +--------------------------------------------------------------+
    | NULL |
    +--------------------------------------------------------------+