assumeNotNull
Introduit dans : v1.1.0
Renvoie la valeur correspondante non Nullable pour une valeur de type Nullable.
Si la valeur d’origine est NULL, un résultat arbitraire peut être renvoyé.
Voir aussi : les fonctions ifNull et coalesce.
Syntaxe
assumeNotNull(x)Arguments
x— La valeur d'origine de n'importe quel typeNullable.Nullable(T)
Valeur renvoyée
Renvoie une valeur non nullable si la valeur d'origine n'était pas NULL ; sinon, si la valeur d'entrée est NULL, une valeur arbitraire. Any
Exemples
Exemple d'utilisation
CREATE TABLE t_null (x Int8, y Nullable(Int8))
ENGINE=MergeTree()
ORDER BY x;
INSERT INTO t_null VALUES (1, NULL), (2, 3);
SELECT assumeNotNull(y) FROM t_null;
SELECT toTypeName(assumeNotNull(y)) FROM t_null;┌─assumeNotNull(y)─┐
│ 0 │
│ 3 │
└──────────────────┘
┌─toTypeName(assumeNotNull(y))─┐
│ Int8 │
│ Int8 │
└──────────────────────────────┘coalesce
Introduite dans : v1.1.0
Renvoie le premier argument non-NULL.
Syntaxe
coalesce(x[, y, ...])Arguments
x[, y, ...]— Un nombre quelconque de paramètres de type non composite. Tous les paramètres doivent être de types de données compatibles entre eux.Any
Valeur renvoyée
Renvoie le premier argument non NULL, ou NULL si tous les arguments sont NULL. Any ou NULL
Exemples
Exemple d'utilisation
-- Consider a list of contacts that may specify multiple ways to contact a customer.
CREATE TABLE aBook
(
name String,
mail Nullable(String),
phone Nullable(String),
telegram Nullable(UInt32)
)
ENGINE = MergeTree
ORDER BY tuple();
INSERT INTO aBook VALUES ('client 1', NULL, '123-45-67', 123), ('client 2', NULL, NULL, NULL);
-- The mail and phone fields are of type String, but the telegram field is UInt32 so it needs to be converted to String.
-- Get the first available contact method for the customer from the contact list
SELECT name, coalesce(mail, phone, CAST(telegram,'Nullable(String)')) FROM aBook;┌─name─────┬─coalesce(mail, phone, CAST(telegram, 'Nullable(String)'))─┐
│ client 1 │ 123-45-67 │
│ client 2 │ ᴺᵁᴸᴸ │
└──────────┴───────────────────────────────────────────────────────────┘firstNonDefault
Introduit dans : v25.9.0
Renvoie la première valeur non par défaut parmi un ensemble d'arguments
Syntaxe
firstNonDefault(arg1[, arg2[ ...]])Arguments
arg1— Premier argument à vérifier -arg2— Deuxième argument à vérifier -...— Arguments supplémentaires à vérifier
Valeur renvoyée
Le type de résultat est le supertype de tous les arguments
Exemples
entiers
SELECT firstNonDefault(0, 1, 2)1chaînes de caractères
SELECT firstNonDefault('', 'hello', 'world')hellovaleurs nulles
SELECT firstNonDefault(NULL, 0 :: UInt8, 1 :: UInt8)1zéro de type Nullable
SELECT firstNonDefault(NULL, 0 :: Nullable(UInt8), 1 :: Nullable(UInt8))0ifNull
Introduit dans : v1.1.0
Renvoie une autre valeur si le premier argument est NULL.
Syntaxe
ifNull(x, alt)Arguments
x— La valeur à vérifier pour déterminer si elle estNULL.Anyalt— La valeur que la fonction renvoie sixestNULL.Any
Valeur renvoyée
Renvoie la valeur de x si elle n'est pas NULL, sinon alt. Any
Exemples
Exemple d'utilisation
SELECT ifNull('a', 'b'), ifNull(NULL, 'b');┌─ifNull('a', 'b')─┬─ifNull(NULL, 'b')─┐
│ a │ b │
└──────────────────┴───────────────────┘isNotNull
Introduit dans : v1.1.0
Vérifie si l’argument n’est pas NULL.
Voir aussi : l’opérateur IS NOT NULL.
Syntaxe
isNotNull(x)Arguments
x— Une valeur de type de données non composite.Any
Valeur renvoyée
Renvoie 1 si x n'est pas NULL, sinon 0. UInt8
Exemples
Exemple d'utilisation
CREATE TABLE t_null
(
x Int32,
y Nullable(Int32)
)
ENGINE = MergeTree
ORDER BY tuple();
INSERT INTO t_null VALUES (1, NULL), (2, 3);
SELECT x FROM t_null WHERE isNotNull(y);┌─x─┐
│ 2 │
└───┘isNull
Introduit dans : v1.1.0
Indique si l’argument est NULL.
Voir aussi : l’opérateur IS NULL.
Syntaxe
isNull(x)Arguments
x— Une valeur de type de données non composite.Any
Valeur renvoyée
Renvoie 1 si x est NULL, sinon 0. UInt8
Exemples
Exemple d’utilisation
CREATE TABLE t_null
(
x Int32,
y Nullable(Int32)
)
ENGINE = MergeTree
ORDER BY tuple();
INSERT INTO t_null VALUES (1, NULL), (2, 3);
SELECT x FROM t_null WHERE isNull(y);┌─x─┐
│ 1 │
└───┘isNullable
Introduit dans : v22.7.0
Vérifie si le type de données de l’argument est Nullable (c’est-à-dire s’il accepte les valeurs NULL).
Syntaxe
isNullable(x)Arguments
x— Une valeur de n’importe quel type de données.Any
Valeur renvoyée
Renvoie 1 si x est du type de données Nullable, sinon 0. UInt8
Exemples
Exemple d’utilisation
CREATE TABLE tab (
ordinary_col UInt32,
nullable_col Nullable(UInt32)
)
ENGINE = MergeTree
ORDER BY tuple();
INSERT INTO tab (ordinary_col, nullable_col) VALUES (1,1), (2, 2), (3,3);
SELECT isNullable(ordinary_col), isNullable(nullable_col) FROM tab;┌─isNullable(ordinary_col)─┬─isNullable(nullable_col)─┐
│ 0 │ 1 │
│ 0 │ 1 │
│ 0 │ 1 │
└──────────────────────────┴──────────────────────────┘isZeroOrNull
Introduit dans : v20.3.0
Vérifie si l’argument vaut soit zéro (0), soit NULL.
Syntaxe
isZeroOrNull(x)Arguments
x— Une valeur numérique.UInt
Valeur renvoyée
Renvoie 1 si x est NULL ou égal à zéro, sinon 0. UInt8/16/32/64 ou Float32/Float64
Exemples
Exemple d'utilisation
CREATE TABLE t_null
(
x Int32,
y Nullable(Int32)
)
ENGINE = MergeTree
ORDER BY tuple();
INSERT INTO t_null VALUES (1, NULL), (2, 0), (3, 3);
SELECT x FROM t_null WHERE isZeroOrNull(y);┌─x─┐
│ 1 │
│ 2 │
└───┘nullIf
Introduite dans : v1.1.0
Renvoie NULL si les deux arguments sont égaux.
Syntaxe
nullIf(x, y)Arguments
Valeur renvoyée
Renvoie NULL si les deux arguments sont égaux ; sinon, renvoie le premier argument. NULL ou Nullable(x)
Exemples
Exemple d'utilisation
SELECT nullIf(1, 1), nullIf(1, 2);┌─nullIf(1, 1)─┬─nullIf(1, 2)─┐
│ ᴺᵁᴸᴸ │ 1 │
└──────────────┴──────────────┘toNullable
Introduit dans : v1.1.0
Convertit le type de l’argument fourni en Nullable.
Syntaxe
toNullable(x)Arguments
x— Une valeur de n'importe quel type non composite.Any
Valeur renvoyée
Renvoie la valeur d'entrée, mais avec le type Nullable. Nullable(Any)
Exemples
Exemple d'utilisation
SELECT toTypeName(10), toTypeName(toNullable(10));┌─toTypeName(10)─┬─toTypeName(toNullable(10))─┐
│ UInt8 │ Nullable(UInt8) │
└────────────────┴────────────────────────────┘