ClickHouse/docs/fr/sql_reference/functions/functions_for_nulls.md
2020-04-04 12:15:31 +03:00

6.7 KiB

machine_translated machine_translated_rev toc_priority toc_title
true f865c9653f 63 Travailler avec des arguments nullables

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 si x être NULL.
  • 0 si x n'est pas NULL.

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 si x être NULL.
  • 1 si x n'est pas NULL.

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 sont NULL.

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 for NULL.
  • alt — The value that the function returns if x être NULL.

Valeurs renvoyées

  • Valeur x, si x n'est pas NULL.
  • Valeur alt, si x être NULL.

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 pas NULL.
  • La valeur par défaut pour le non-Nullable Tapez si la valeur d'origine était NULL.

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

Article Original