- 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_exprUne 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_valueaffiche six lignes de valeurs VARIANT insérées.La colonne
value_of_xmontre la valeur JSON pour le nomxdans chaque ligne.La colonne
is_variant_value_a_json_nullrenvoie les résultats de la fonction IS_NULL_VALUE pour la valeur VARIANT dans chaque ligne.La colonne
is_x_a_json_nullrenvoie les résultats de la fonction IS_NULL_VALUE pour le nomxdans chaque ligne. Les lignes sans nomxrenvoient NULL.La colonne
is_y_a_json_nullrenvoie les résultats de la fonction IS_NULL_VALUE pour le nomydans chaque ligne. Parce qu’il n’y a pas de nomycorrespondant dans l’une des lignes, toutes les lignes renvoient NULL.