Catégories :

Fonctions d’expressions conditionnelles , Fonctions de données semi-structurées et structurées (prédicats de type)

IS_NULL_VALUE

Renvoie TRUE si son argument VARIANT est une valeur JSON nulle.

Important

La valeur JSON null est distincte de la valeur SQL NULL.

Cette fonction renvoie TRUE uniquement pour les valeurs JSON et non pour les valeurs SQL NULL. La différence est indiquée dans les première et troisième lignes de la sortie pour l’exemple ci-dessous.

Une valeur JSON manquante est convertie en valeur SQL NULL, pour laquelle IS_NULL_VALUE renvoie NULL. La 4e colonne de la sortie pour l’exemple ci-dessous en donne une illustration.

Cette fonction est différente de la fonction IS [ NOT ] NULL.

Voir aussi :

IS_<type_objet>

Syntaxe

IS_NULL_VALUE( <variant_expr> )
Copy

Arguments

variant_expr

Une expression qui correspond à une valeur de type VARIANT.

Renvoie

Cette fonction renvoie une valeur de type BOOLEAN ou NULL :

  • Renvoie TRUE pour une valeur nulle JSON.

  • Renvoie FALSE pour une valeur non nulle JSON.

  • Renvoie NULL pour SQL NULL.

Exemples

Cet exemple utilise la fonction IS_NULL_VALUE. Tout d’abord, créez une table avec une colonne VARIANT :

CREATE OR REPLACE TABLE test_is_null_value_function (
  variant_value VARIANT);
Copy

Insérez deux lignes avec des paires nom/valeur JSON dans la colonne VARIANT utilisant la fonction PARSE_JSON :

Note

La fonction PARSE_JSON renvoie une valeur 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

Insérez une valeur NULL dans la colonne :

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

Interrogez la table :

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

Dans les résultats de la requête :

  • La colonne variant_value affiche trois lignes de valeurs VARIANT insérées.

  • La colonne value_of_x montre la valeur JSON pour le nom x dans chaque ligne.

  • La colonne is_x_a_json_null renvoie les résultats de la fonction IS_NULL_VALUE pour le nom x dans chaque ligne.

  • La colonne is_y_a_json_null renvoie les résultats de la fonction IS_NULL_VALUE pour le nom y dans chaque ligne. Parce qu’il n’y a pas de nom y correspondant dans l’une des lignes, toutes les lignes renvoient NULL.