is_json_scalar
JSON値がスカラ(オブジェクトでも配列でもない)であるかどうかを返します。
エイリアス
なし
構文
BOOLEAN is_json_scalar(JSON)
パラメータ
json : JSON型の値。この関数は、解析されたJSON値を検査し、それがスカラであるかどうかを判断します。有効なJSONスカラ型には、数値、文字列、ブール値、およびJSON nullが含まれます。入力がSQL NULL(またはJSON列の値がNULL)の場合、関数はSQL NULLを返します。
戻り値
戻り値はBOOLEANです。
- TRUE (1): JSON値がスカラ(数値、文字列、ブール値、またはJSON null)である場合。
- FALSE (0): JSON値が非スカラ(オブジェクトまたは配列)である場合。
- NULL: 入力がSQL NULLである場合。
使用上の注意
- この関数はJSON型の値に対して動作します。JSON式または
CAST文字列リテラルをJSONに渡します。例:CAST('{"a": 1}' AS JSON)。 JSON null(リテラルJSON値null)は、オブジェクトまたは配列ではないため、この関数によってスカラと見なされます。SQL NULL(値の欠如)はJSON nullとは異なります。SQL NULLはNULL結果を生成します。- この関数はトップレベルのJSON値のみを検査します。オブジェクトと配列は、その内容に関わらず非スカラです。
- この関数は
JsonFunctions::is_json_scalarとして実装されており、基となるVPackスライスがオブジェクトでも配列でもないことを確認します。
例
SELECT is_json_scalar(CAST('{"a": 1}' AS JSON));
+----------------------------------------------+
| is_json_scalar(CAST('{"a": 1}' AS JSON)) |
+----------------------------------------------+
| 0 |
+----------------------------------------------+
SELECT is_json_scalar(CAST('[1, 2, 3]' AS JSON));
+-----------------------------------------+
| is_json_scalar(CAST('[1, 2, 3]' AS JSON)) |
+-----------------------------------------+
| 0 |
+-----------------------------------------+
SELECT is_json_scalar(CAST('"hello"' AS JSON));
+-------------------------------------------+
| is_json_scalar(CAST('"hello"' AS JSON)) |
+-------------------------------------------+
| 1 |
+-------------------------------------------+
SELECT is_json_scalar(CAST('123' AS JSON));
+----------------------------------------+
| is_json_scalar(CAST('123' AS JSON)) |
+----------------------------------------+
| 1 |
+----------------------------------------+
SELECT is_json_scalar(CAST('true' AS JSON));
+-----------------------------------------+
| is_json_scalar(CAST('true' AS JSON)) |
+-----------------------------------------+
| 1 |
+-----------------------------------------+
SELECT is_json_scalar(CAST('null' AS JSON));
+----------------------------------------+
| is_json_scalar(CAST('null' AS JSON)) |
+----------------------------------------+
| 1 |
+----------------------------------------+
SELECT is_json_scalar(CAST(NULL AS JSON));
+------------------------------+
| is_json_scalar(CAST(NULL AS JSON)) |
+------------------------------+
| NULL |
+------------------------------+