Categorias:

Funções de expressão condicional , Funções de dados semiestruturados e estruturados (Predicados de tipo)

IS_NULL_VALUE

Retorna TRUE se seu argumento VARIANT for um valor nulo JSON.

Importante

O valor JSON nulo é distinto do valor SQL NULL.

Esta função retorna TRUE somente para valores nulo JSON, não valores SQL NULL. A diferença é mostrada na primeira e terceira linhas na saída do exemplo abaixo.

Um valor JSON ausente é convertido em um valor SQL NULL, para o qual IS_NULL_VALUE retorna NULL. A quarta coluna na saída do exemplo abaixo mostra isso.

Esta função é diferente da função IS [ NOT ] NULL.

Consulte também:

IS_<tipo_de_objeto>

Sintaxe

IS_NULL_VALUE( <variant_expr> )
Copy

Argumentos

variant_expr

Uma expressão que avalia como um valor do tipo VARIANT.

Retornos

Esta função retorna um valor do tipo BOOLEAN ou NULL:

  • Retorna TRUE para um valor JSON nulo.

  • Retorna FALSE para um valor JSON não nulo.

  • Retorna NULL para um valor SQL NULL.

Exemplos

Este exemplo usa a função IS_NULL_VALUE. Primeiro, crie uma tabela com uma coluna VARIANT:

CREATE OR REPLACE TABLE test_is_null_value_function (
  variant_value VARIANT);
Copy

Insira um valor de cadeia de caracteres na coluna usando a função PARSE_JSON:

INSERT INTO test_is_null_value_function (variant_value)
  (SELECT PARSE_JSON('"string value"'));
Copy

Nota

A função PARSE_JSON retorna um valor VARIANT.

Insira um valor JSON nulo na coluna:

INSERT INTO test_is_null_value_function (variant_value)
  (SELECT PARSE_JSON('null'));
Copy

Insira um objeto vazio na coluna:

INSERT INTO test_is_null_value_function (variant_value)
  (SELECT PARSE_JSON('{}'));
Copy

Insira duas linhas com pares de nome-valor JSON na coluna 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

Insira um NULL na coluna:

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

Consultar a tabela:

SELECT variant_value,
       variant_value:x value_of_x,
       IS_NULL_VALUE(variant_value) is_variant_value_a_json_null,
       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_VARIANT_VALUE_A_JSON_NULL | IS_X_A_JSON_NULL | IS_Y_A_JSON_NULL |
|----------------+------------+------------------------------+------------------+------------------|
| "string value" | NULL       | False                        | NULL             | NULL             |
| null           | NULL       | True                         | NULL             | NULL             |
| {}             | NULL       | False                        | NULL             | NULL             |
| {              | null       | False                        | True             | NULL             |
|   "x": null    |            |                              |                  |                  |
| }              |            |                              |                  |                  |
| {              | "foo"      | False                        | False            | NULL             |
|   "x": "foo"   |            |                              |                  |                  |
| }              |            |                              |                  |                  |
| NULL           | NULL       | NULL                         | NULL             | NULL             |
+----------------+------------+------------------------------+------------------+------------------+

Nos resultados de consulta:

  • A coluna variant_value mostra seis linhas de valores inseridos em VARIANT.

  • A coluna value_of_x mostra o valor JSON do nome x em cada linha.

  • A coluna is_variant_value_a_json_null retorna os resultados da função IS_NULL_VALUE para o valor VARIANT em cada linha.

  • A coluna is_x_a_json_null retorna os resultados da função IS_NULL_VALUE para o nome x em cada linha. As linhas sem um nome x retornam NULL.

  • A coluna is_y_a_json_null retorna os resultados da função IS_NULL_VALUE para o nome y em cada linha. Como não há nenhum nome correspondente a y em nenhuma linha, todas as linhas retornam NULL.