- 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 :
Syntaxe¶
IS_NULL_VALUE( <variant_expr> )
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 une valeur 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);
Insérez une valeur de chaîne dans la colonne à l’aide de la fonction PARSE_JSON :
INSERT INTO test_is_null_value_function (variant_value)
(SELECT PARSE_JSON('"string value"'));
Note
La fonction PARSE_JSON renvoie une valeur VARIANT.
Insérez une valeur « null » JSON dans la colonne :
INSERT INTO test_is_null_value_function (variant_value)
(SELECT PARSE_JSON('null'));
Insérez un objet vide dans la colonne :
INSERT INTO test_is_null_value_function (variant_value)
(SELECT PARSE_JSON('{}'));
Insérez deux lignes avec des paires nom/valeur JSON dans la colonne 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"}'));
Insérez une valeur NULL dans la colonne :
INSERT INTO test_is_null_value_function (variant_value)
(SELECT PARSE_JSON(NULL));
Interrogez la table :
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;
+----------------+------------+------------------------------+------------------+------------------+
| 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 |
+----------------+------------+------------------------------+------------------+------------------+
Dans les résultats de la requête :
La colonne
variant_value
affiche six lignes de valeurs VARIANT insérées.La colonne
value_of_x
montre la valeur JSON pour le nomx
dans chaque ligne.La colonne
is_variant_value_a_json_null
renvoie les résultats de la fonction IS_NULL_VALUE pour la valeur VARIANT dans chaque ligne.La colonne
is_x_a_json_null
renvoie les résultats de la fonction IS_NULL_VALUE pour le nomx
dans chaque ligne. Les lignes sans nomx
renvoient NULL.La colonne
is_y_a_json_null
renvoie les résultats de la fonction IS_NULL_VALUE pour le nomy
dans chaque ligne. Parce qu’il n’y a pas de nomy
correspondant dans l’une des lignes, toutes les lignes renvoient NULL.