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を返します
使用上の注意
-
<json_object>または<json_path>がNULLの場合、NULLを返します。 -
<json_path>で指定された要素が存在しない場合、NULLを返します。 -
<json_path>で指定された要素がLARGEINTに変換できない場合、NULLを返します。 -
この動作は"cast + json_extract"と一致しており、以下と等価です:
CAST(JSON_EXTRACT(<json_object>, <json_path>) as LARGEINT)
Examples
-
通常のパラメータ
SELECT json_extract_largeint('{"id": 11529215046068469760, "name": "doris"}', '$.id');+--------------------------------------------------------------------------------+
| json_extract_largeint('{"id": 11529215046068469760, "name": "doris"}', '$.id') |
+--------------------------------------------------------------------------------+
| 11529215046068469760 |
+--------------------------------------------------------------------------------+ -
パスが存在しない場合
SELECT json_extract_largeint('{"id": 11529215046068469760, "name": "doris"}', '$.id2');+---------------------------------------------------------------------------------+
| json_extract_largeint('{"id": 11529215046068469760, "name": "doris"}', '$.id2') |
+---------------------------------------------------------------------------------+
| NULL |
+---------------------------------------------------------------------------------+ -
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 |
+--------------------------------------+ -
LARGEINTへの変換ができない場合
SELECT json_extract_largeint('{"id": 123, "name": "doris"}','$.name');+----------------------------------------------------------------+
| json_extract_largeint('{"id": 123, "name": "doris"}','$.name') |
+----------------------------------------------------------------+
| NULL |
+----------------------------------------------------------------+