- カテゴリ:
条件式関数 、 半構造化データ関数と構造化データ関数 (型述語)
IS_NULL_VALUE¶
VARIANT 引数が JSON null 値の場合、TRUE を返します。
重要
JSON null値は、SQL NULL 値とは異なります。
この関数は、 SQL NULL 値ではなく、 JSON null値に対してのみ TRUE を返します。 以下の例の出力 の1行目と3行目に違いが示されています。
JSON 値の欠落は SQL NULL の値に変換され、 IS_NULL_VALUE は NULL を返します。 以下の例の出力 の4番目の列はこれを示しています。
この関数は IS [ NOT ] NULL 関数とは異なります。
- こちらもご参照ください。
構文¶
IS_NULL_VALUE( <variant_expr> )
引数¶
variant_expr
VARIANT型の値に評価される式です。
戻り値¶
この関数は BOOLEAN 型または NULL の値を返します。
JSON null値に対して TRUE を返します。
JSON 値がNULLでない場合に FALSE を返します。
SQL NULL に対して NULL を返します。
例¶
この例では IS_NULL_VALUE 関数を使用します。まず、 VARIANT 列を持つテーブルを作成します。
CREATE OR REPLACE TABLE test_is_null_value_function (
variant_value VARIANT);
PARSE_JSON 関数を使用して、 JSON 名前/値のペアを持つ2行を VARIANT 列に挿入します。
注釈
PARSE_JSON 関数は VARIANT 値を返します。
INSERT INTO test_is_null_value_function (variant_value)
(SELECT PARSE_JSON('{"x": null}'));
INSERT INTO test_is_null_value_function (variant_value)
(SELECT PARSE_JSON('{"x": "foo"}'));
列に NULL を挿入します。
INSERT INTO test_is_null_value_function (variant_value)
(SELECT PARSE_JSON(NULL));
テーブルをクエリします。
SELECT variant_value,
variant_value:x value_of_x,
IS_NULL_VALUE(variant_value:x) is_x_a_json_null,
IS_NULL_VALUE(variant_value:y) is_y_a_json_null
FROM test_is_null_value_function;
+---------------+------------+------------------+------------------+
| VARIANT_VALUE | VALUE_OF_X | IS_X_A_JSON_NULL | IS_Y_A_JSON_NULL |
|---------------+------------+------------------+------------------|
| { | null | True | NULL |
| "x": null | | | |
| } | | | |
| { | "foo" | False | NULL |
| "x": "foo" | | | |
| } | | | |
| NULL | NULL | NULL | NULL |
+---------------+------------+------------------+------------------+
クエリ結果には:
variant_value
列は、挿入された VARIANT 値の3行を示しています。value_of_x
列は、各行の名前x
に対して JSON 値を示しています。is_x_a_json_null
列は、各行の名前x
に対して IS_NULL_VALUE 関数の結果を返します。is_y_a_json_null
列は、各行の名前y
に対して IS_NULL_VALUE 関数の結果を返します。どの行にも一致するy
名がないため、すべての行が NULL を返します。