Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Fonctions permettant de manipuler des valeurs Nullable

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 type Nullable. 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)
1

chaînes de caractères

SELECT firstNonDefault('', 'hello', 'world')
hello

valeurs nulles

SELECT firstNonDefault(NULL, 0 :: UInt8, 1 :: UInt8)
1

zéro de type Nullable

SELECT firstNonDefault(NULL, 0 :: Nullable(UInt8), 1 :: Nullable(UInt8))
0

ifNull

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 est NULL. Any
  • alt — La valeur que la fonction renvoie si x est NULL. 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

  • x — La première valeur. Any
  • y — La deuxième valeur. Any

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)            │
└────────────────┴────────────────────────────┘
Navigation