- Catégories :
Fonctions de données semi-structurées et structurées (prédicats de type)
IS_<type_objet>¶
Cette famille de fonctions sert de prédicats booléens qui peuvent être utilisés pour déterminer le type de données d’une valeur stockée dans une colonne VARIANT :
- Voir aussi :
Notes générales sur l’utilisation¶
Toutes les fonctions sont unaires, en prenant une expression VARIANT comme seul argument.
Toutes les fonctions renvoient FALSE si l’entrée est SQL NULL ou si l’expression VARIANT contient la valeur null.
Exemples¶
Ces exemples utilisent la table vartab
(créée dans les exemples PARSE_JSON) :
select n, v, typeof(v) from vartab; +---+------------------------+------------+ | N | V | TYPEOF(V) | |---+------------------------+------------| | 1 | null | NULL_VALUE | | 2 | NULL | NULL | | 3 | true | BOOLEAN | | 4 | -17 | INTEGER | | 5 | 123.12 | DECIMAL | | 6 | 1.912000000000000e+02 | DOUBLE | | 7 | "Om ara pa ca na dhih" | VARCHAR | | 8 | [ | ARRAY | | | -1, | | | | 12, | | | | 289, | | | | 2188, | | | | false, | | | | undefined | | | | ] | | | 9 | { | OBJECT | | | "x": "abc", | | | | "y": false, | | | | "z": 10 | | | | } | | +---+------------------------+------------+
Comptez toutes les lignes de la table vartab
où la colonne VARIANT v
contient une valeur de chaîne :
select count(*) from vartab where is_char(v); +----------+ | COUNT(*) | |----------| | 1 | +----------+
Sélectionnez les lignes de la table vartab
dans lesquelles la colonne VARIANT v
contient le type de données spécifié :
select * from vartab where is_null_value(v); +---+------+ | N | V | |---+------| | 1 | null | +---+------+ select * from vartab where is_boolean(v); +---+------+ | N | V | |---+------| | 3 | true | +---+------+ select * from vartab where is_integer(v); +---+-----+ | N | V | |---+-----| | 4 | -17 | +---+-----+ select * from vartab where is_decimal(v); +---+--------+ | N | V | |---+--------| | 4 | -17 | | 5 | 123.12 | +---+--------+ select * from vartab where is_double(v); +---+-----------------------+ | N | V | |---+-----------------------| | 4 | -17 | | 5 | 123.12 | | 6 | 1.912000000000000e+02 | +---+-----------------------+ select * from vartab where is_varchar(v); +---+------------------------+ | N | V | |---+------------------------| | 7 | "Om ara pa ca na dhih" | +---+------------------------+ select * from vartab where is_array(v); +---+-------------+ | N | V | |---+-------------| | 8 | [ | | | -1, | | | 12, | | | 289, | | | 2188, | | | false, | | | undefined | | | ] | +---+-------------+ select * from vartab where is_object(v); +---+---------------+ | N | V | |---+---------------| | 9 | { | | | "x": "abc", | | | "y": false, | | | "z": 10 | | | } | +---+---------------+