メインコンテンツまでスキップ
バージョン: 26.2 Preview

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 |
+------------------------------+