Последнее обновление
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.
Примечания по использованию
- Если
<json_object>или<json_path>имеет значение NULL, возвращает NULL. - Если элемент, указанный в
<json_path>, не существует, возвращает NULL. - Если элемент, указанный в
<json_path>, невозможно преобразовать к типу DOUBLE, возвращает NULL. - Поведение соответствует "cast + json_extract", что эквивалентно следующему:
CAST(JSON_EXTRACT(<json_object>, <json_path>) as DOUBLE)
Примеры
- Обычные параметры
SELECT json_extract_double('{"id": 123.345, "name": "doris"}', '$.id');+-----------------------------------------------------------------+
| json_extract_double('{"id": 123.345, "name": "doris"}', '$.id') |
+-----------------------------------------------------------------+
| 123.345 |
+-----------------------------------------------------------------+ - Путь не существует
SELECT json_extract_double('{"id": 123.345, "name": "doris"}', '$.id2');+------------------------------------------------------------------+
| json_extract_double('{"id": 123.345, "name": "doris"}', '$.id2') |
+------------------------------------------------------------------+
| NULL |
+------------------------------------------------------------------+ - Параметры со значением 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 |
+------------------------------------+ - Преобразование к типу DOUBLE невозможно
SELECT json_extract_double('{"id": 123, "name": "doris"}','$.name');+--------------------------------------------------------------+
| json_extract_double('{"id": 123, "name": "doris"}','$.name') |
+--------------------------------------------------------------+
| NULL |
+--------------------------------------------------------------+