JSON_EXTRACT_DOUBLE
説明
JSON_EXTRACT_DOUBLEは、JSONオブジェクトから<json_path>で指定されたフィールドを抽出し、DOUBLE型に変換します。
構文
JSON_EXTRACT_DOUBLE(<json_object>, <json_path>)
パラメータ
<json_object>: JSON型、抽出対象のパラメータ<json_path>: String型、対象JSONから目的の要素を抽出するための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 |
+--------------------------------------------------------------+