カテゴリ:

条件式関数半構造化データ関数と構造化データ関数 (型述語)

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_<オブジェクト型>

構文

IS_NULL_VALUE( <variant_expr> )
Copy

引数

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);
Copy

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"}'));
Copy

列に NULL を挿入します。

INSERT INTO test_is_null_value_function (variant_value)
  (SELECT PARSE_JSON(NULL));
Copy

テーブルをクエリします。

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;
Copy
+---------------+------------+------------------+------------------+
| 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 を返します。