카테고리:

조건식 함수 , 반정형 및 정형 데이터 함수 (형식 조건자)

IS_NULL_VALUE

VARIANT 인자가 JSON null 값이면 TRUE를 반환합니다.

중요

JSON null 값은 SQL NULL 값과 다릅니다.

이 함수는 SQL NULL 값이 아닌 JSON null 값에 대해서만 TRUE를 반환합니다. 차이점은 아래 예의 출력 에서 첫 번째 행과 세 번째 행에 나와 있습니다.

누락된 JSON 값은 IS_NULL_VALUE 가 NULL을 반환하는 SQL NULL 값으로 변환됩니다. 아래 예의 출력 에서 4번째 열이 이를 보여줍니다.

이 함수는 IS [ NOT ] NULL 함수와 다릅니다.

참고 항목:

IS_<오브젝트_유형_>

구문

IS_NULL_VALUE( <variant_expr> )
Copy

인자

variant_expr

VARIANT 형식의 값으로 평가되는 식입니다.

반환

이 함수는 BOOLEAN 타입 또는 NULL의 값을 반환합니다.

  • JSON null 값의 경우 TRUE를 반환합니다.

  • null이 아닌 JSON 값의 경우 FALSE를 반환합니다.

  • SQL NULL의 경우 NULL을 반환합니다.

이 예에서는 IS_NULL_VALUE 함수를 사용합니다. 먼저, VARIANT 열이 있는 테이블을 만듭니다.

CREATE OR REPLACE TABLE test_is_null_value_function (
  variant_value VARIANT);
Copy

PARSE_JSON 함수를 사용하여 JSON 이름/값 페어가 있는 두 행을 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 값의 세 행이 variant_value 열에 표시됩니다.

  • 각 행의 이름 x 에 대한 JSON 값이 value_of_x 열에 표시됩니다.

  • is_x_a_json_null 열은 각 행의 이름 x 에 대한 IS_NULL_VALUE 함수의 결과를 반환합니다.

  • is_y_a_json_null 열은 각 행의 이름 y 에 대한 IS_NULL_VALUE 함수의 결과를 반환합니다. 어느 행에도 일치하는 y 이름이 없으므로 모든 행에서 NULL을 반환합니다.