Help wanted!
The following content of this documentation page has been machine-translated. But unlike other websites, it is not done on the fly. This translated text lives on GitHub repository alongside main ClickHouse codebase and waits for fellow native speakers to make it more human-readable. You can also use the original English version as a reference.
Fonctions pour travailler avec des agrégats nullables
isNull
Vérifie si l'argument est NULL.
isNull(x)
Paramètre
x
— A value with a non-compound data type.
Valeur renvoyée
1
six
êtreNULL
.0
six
n'est pasNULL
.
Exemple
Table d'entrée
┌─x─┬────y─┐
│ 1 │ ᴺᵁᴸᴸ │
│ 2 │ 3 │
└───┴──────┘
Requête
SELECT x FROM t_null WHERE isNull(y)
┌─x─┐
│ 1 │
└───┘
isNotNull
Vérifie si l'argument est NULL.
isNotNull(x)
Paramètre:
x
— A value with a non-compound data type.
Valeur renvoyée
0
six
êtreNULL
.1
six
n'est pasNULL
.
Exemple
Table d'entrée
┌─x─┬────y─┐
│ 1 │ ᴺᵁᴸᴸ │
│ 2 │ 3 │
└───┴──────┘
Requête
SELECT x FROM t_null WHERE isNotNull(y)
┌─x─┐
│ 2 │
└───┘
fusionner
Vérifie de gauche à droite si NULL
les arguments ont été passés et renvoie le premier non-NULL
argument.
coalesce(x,...)
Paramètre:
- N'importe quel nombre de paramètres d'un type non composé. Tous les paramètres doivent être compatibles par type de données.
Valeurs renvoyées
- Le premier non-
NULL
argument. NULL
si tous les arguments sontNULL
.
Exemple
Considérez une liste de contacts qui peuvent spécifier plusieurs façons de contacter un client.
┌─name─────┬─mail─┬─phone─────┬──icq─┐
│ client 1 │ ᴺᵁᴸᴸ │ 123-45-67 │ 123 │
│ client 2 │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │ ᴺᵁᴸᴸ │
└──────────┴──────┴───────────┴──────┘
Le mail
et phone
les champs sont de type Chaîne de caractères, mais la icq
le terrain est UInt32
, de sorte qu'il doit être converti en String
.
Obtenir la première méthode de contact pour le client à partir de la liste de contacts:
SELECT coalesce(mail, phone, CAST(icq,'Nullable(String)')) FROM aBook
┌─name─────┬─coalesce(mail, phone, CAST(icq, 'Nullable(String)'))─┐
│ client 1 │ 123-45-67 │
│ client 2 │ ᴺᵁᴸᴸ │
└──────────┴──────────────────────────────────────────────────────┘
ifNull
Renvoie une valeur alternative si l'argument principal est NULL
.
ifNull(x,alt)
Paramètre:
x
— The value to check forNULL
.alt
— The value that the function returns ifx
êtreNULL
.
Valeurs renvoyées
- Valeur
x
, six
n'est pasNULL
. - Valeur
alt
, six
êtreNULL
.
Exemple
SELECT ifNull('a', 'b')
┌─ifNull('a', 'b')─┐
│ a │
└──────────────────┘
SELECT ifNull(NULL, 'b')
┌─ifNull(NULL, 'b')─┐
│ b │
└───────────────────┘
nullIf
Retourner NULL
si les arguments sont égaux.
nullIf(x, y)
Paramètre:
x
, y
— Values for comparison. They must be compatible types, or ClickHouse will generate an exception.
Valeurs renvoyées
NULL
si les arguments sont égaux.- Le
x
valeur, si les arguments ne sont pas égaux.
Exemple
SELECT nullIf(1, 1)
┌─nullIf(1, 1)─┐
│ ᴺᵁᴸᴸ │
└──────────────┘
SELECT nullIf(1, 2)
┌─nullIf(1, 2)─┐
│ 1 │
└──────────────┘
assumeNotNull
Résultats dans une valeur de type Nullable pour un non- Nullable
si la valeur n'est pas NULL
.
assumeNotNull(x)
Paramètre:
x
— The original value.
Valeurs renvoyées
- La valeur d'origine du non-
Nullable
type, si elle n'est pasNULL
. - La valeur par défaut pour le non-
Nullable
Tapez si la valeur d'origine étaitNULL
.
Exemple
Envisager l' t_null
table.
SHOW CREATE TABLE t_null
┌─statement─────────────────────────────────────────────────────────────────┐
│ CREATE TABLE default.t_null ( x Int8, y Nullable(Int8)) ENGINE = TinyLog │
└───────────────────────────────────────────────────────────────────────────┘
┌─x─┬────y─┐
│ 1 │ ᴺᵁᴸᴸ │
│ 2 │ 3 │
└───┴──────┘
Appliquer le assumeNotNull
la fonction de la y
colonne.
SELECT assumeNotNull(y) FROM t_null
┌─assumeNotNull(y)─┐
│ 0 │
│ 3 │
└──────────────────┘
SELECT toTypeName(assumeNotNull(y)) FROM t_null
┌─toTypeName(assumeNotNull(y))─┐
│ Int8 │
│ Int8 │
└──────────────────────────────┘
toNullable
Convertit le type d'argument en Nullable
.
toNullable(x)
Paramètre:
x
— The value of any non-compound type.
Valeur renvoyée
- La valeur d'entrée avec un
Nullable
type.
Exemple
SELECT toTypeName(10)
┌─toTypeName(10)─┐
│ UInt8 │
└────────────────┘
SELECT toTypeName(toNullable(10))
┌─toTypeName(toNullable(10))─┐
│ Nullable(UInt8) │
└────────────────────────────┘