Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Fonctions de comparaison

Règles de comparaison

Les fonctions de comparaison ci-dessous renvoient 0 ou 1, de type UInt8. Seules les valeurs d'un même groupe peuvent être comparées (par ex. UInt16 et UInt64), mais pas des valeurs appartenant à des groupes différents (par ex. UInt16 et DateTime). Il est possible de comparer des nombres et des chaînes, ainsi que des chaînes avec des dates et des dates avec des heures. Pour les tuples et les tableaux, la comparaison est lexicographique, ce qui signifie qu'elle est effectuée sur chaque élément correspondant du tuple/tableau de gauche et de celui de droite.

Les types suivants peuvent être comparés :

  • nombres et décimaux
  • chaînes et chaînes de longueur fixe
  • dates
  • dates avec heures
  • tuples (comparaison lexicographique)
  • tableaux (comparaison lexicographique)

equals

Introduit dans : v1.1.0

Compare deux valeurs pour déterminer si elles sont égales.

Syntaxe

equals(a, b)
        -- a = b
        -- a == b

Arguments

  • a — Première valeur.* - b — Deuxième valeur.*

Valeur renvoyée

Renvoie 1 si a est égal à b, sinon 0 UInt8

Exemples

Exemple d’utilisation

SELECT 1 = 1, 1 = 2;
┌─equals(1, 1)─┬─equals(1, 2)─┐
│            1 │            0 │
└──────────────┴──────────────┘

globalIn

Introduit dans : v1.1.0

Identique à in, mais utilise la distribution globale de l’ensemble dans les requêtes distribuées. L’ensemble est envoyé à tous les serveurs distants.

Syntaxe

globalIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x appartient à l’ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT 1 IN (1, 2, 3)
1

globalInIgnoreSet

Introduit dans : v1.1.0

Identique à in, mais utilise la distribution globale des ensembles dans les requêtes distribuées. L’ensemble est envoyé à tous les serveurs distants. Il s’agit de la variante IgnoreSet utilisée pour l’analyse de type sans construire l’ensemble.

Syntaxe

globalIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L'ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x appartient à l'ensemble, sinon 0. UInt8

Exemples

Utilisation de base

SELECT 1 IN (1, 2, 3)
1

globalNotIn

Introduit dans : v1.1.0

Identique à notIn, mais utilise le mécanisme de distribution globale des ensembles dans les requêtes distribuées. L'ensemble est envoyé à tous les serveurs distants.

Syntaxe

globalNotIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x n’est pas dans l’ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT 4 NOT IN (1, 2, 3)
1

globalNotInIgnoreSet

Introduit dans : v1.1.0

Identique à notIn, mais utilise la distribution globale de l’ensemble dans les requêtes distribuées. L’ensemble est envoyé à tous les serveurs distants. Il s’agit de la variante IgnoreSet utilisée pour l’analyse de type sans créer l’ensemble.

Syntaxe

globalNotIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x n'appartient pas à l'ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT 4 NOT IN (1, 2, 3)
1

globalNotNullIn

Introduit dans : v1.1.0

Identique à notNullIn, mais utilise la distribution globale de l’ensemble dans les requêtes distribuées. L’ensemble est envoyé à tous les serveurs distants.

Syntaxe

globalNotNullIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x n’est pas dans l’ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT notNullIn(NULL, tuple(1, NULL))
1

globalNotNullInIgnoreSet

Introduit dans : v1.1.0

Identique à notNullIn, mais utilise la distribution globale de l’ensemble dans les requêtes distribuées. L’ensemble est envoyé à tous les serveurs distants. Il s’agit de la variante IgnoreSet utilisée pour l’analyse de type, sans créer l’ensemble.

Syntaxe

globalNotNullIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x n’appartient pas à l’ensemble, sinon 0. UInt8

Exemples

Utilisation de base

SELECT notNullIn(NULL, tuple(1, NULL))
1

globalNullIn

Introduit dans : v1.1.0

Identique à nullIn, mais utilise la distribution globale de l’ensemble dans les requêtes distribuées. L’ensemble est envoyé à tous les serveurs distants.

Syntaxe

globalNullIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x appartient à l’ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT nullIn(NULL, tuple(1, NULL))
0

globalNullInIgnoreSet

Introduit dans : v1.1.0

Identique à nullIn, mais utilise la distribution globale de l’ensemble dans les requêtes distribuées. L’ensemble est envoyé à tous les serveurs distants. Il s'agit de la variante IgnoreSet utilisée pour l'analyse de type sans créer l’ensemble.

Syntaxe

globalNullIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x appartient à l’ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT nullIn(NULL, tuple(1, NULL))
0

greater

Introduit dans : v1.1.0

Compare deux valeurs afin de déterminer si l’une est supérieure à l’autre.

Syntaxe

greater(a, b)
    -- a > b

Arguments

  • a — Première valeur.* - b — Deuxième valeur.*

Valeur renvoyée

Renvoie 1 si a est supérieur à b, sinon 0 UInt8

Exemples

Exemple d'utilisation

SELECT 2 > 1, 1 > 2;
┌─greater(2, 1)─┬─greater(1, 2)─┐
│             1 │             0 │
└───────────────┴───────────────┘

greaterOrEquals

Introduit dans : v1.1.0

Compare deux valeurs pour déterminer si l’une est supérieure ou égale à l’autre.

Syntaxe

greaterOrEquals(a, b)
    -- a >= b

Arguments

  • a — Première valeur.* - b — Deuxième valeur.*

Valeur renvoyée

Renvoie 1 si a est supérieur ou égal à b, sinon 0 UInt8

Exemples

Exemple d'utilisation

SELECT 2 >= 1, 2 >= 2, 1 >= 2;
┌─greaterOrEquals(2, 1)─┬─greaterOrEquals(2, 2)─┬─greaterOrEquals(1, 2)─┐
│                     1 │                     1 │                     0 │
└───────────────────────┴───────────────────────┴───────────────────────┘

in

Introduit dans : v1.1.0

Vérifie si l’opérande de gauche appartient à l’ensemble de l’opérande de droite. Renvoie 1 si c’est le cas, 0 sinon. Les valeurs NULL dans l’opérande de gauche sont ignorées (considérées comme n’appartenant pas à l’ensemble).

Syntaxe

in(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x appartient à l’ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT 1 IN (1, 2, 3)
1

inIgnoreSet

Introduit dans : v1.1.0

Vérifie si l'opérande de gauche appartient à l'ensemble de l'opérande de droite. Renvoie 1 si c'est le cas, 0 sinon. Les valeurs NULL de l'opérande de gauche sont ignorées (considérées comme n'appartenant pas à l'ensemble). Il s'agit de la variante IgnoreSet utilisée pour l'analyse de type sans créer l'ensemble.

Syntaxe

in(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x appartient à l’ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT 1 IN (1, 2, 3)
1

isDistinctFrom

Introduit dans : v25.11.0

Effectue une comparaison « différent de » qui gère explicitement les valeurs NULL entre deux valeurs. Renvoie true si les valeurs sont distinctes (non égales), y compris lorsqu'une valeur est NULL et l'autre ne l'est pas. Renvoie false si les valeurs sont égales ou si elles sont toutes deux NULL.

Syntaxe

isDistinctFrom(x, y)

Arguments

  • x — Première valeur à comparer. Peut être de n’importe quel type de données ClickHouse. Any
  • y — Deuxième valeur à comparer. Peut être de n’importe quel type de données ClickHouse. Any

Valeur renvoyée

Renvoie true si les deux valeurs sont différentes, en considérant les NULL comme comparables :

  • Renvoie true si x != y.
    • Renvoie true si une seule des valeurs x ou y est NULL.
    • Renvoie false si x = y, ou si x et y sont tous deux NULL. Bool

Exemples

Utilisation de base avec des nombres et des NULL

SELECT
    isDistinctFrom(1, 2) AS result_1,
    isDistinctFrom(1, 1) AS result_2,
    isDistinctFrom(NULL, 1) AS result_3,
    isDistinctFrom(NULL, NULL) AS result_4
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘

isNotDistinctFrom

Introduit dans : v23.8.0

Effectue une comparaison d’égalité compatible avec NULL entre deux valeurs. Renvoie true si les valeurs sont égales, y compris lorsqu’elles sont toutes deux NULL. Renvoie false si les valeurs sont différentes, ou si une seule des deux est NULL.

Syntaxe

isNotDistinctFrom(x, y)

Arguments

  • x — Première valeur à comparer. Peut être de n’importe quel type de données ClickHouse. Any
  • y — Deuxième valeur à comparer. Peut être de n’importe quel type de données ClickHouse. Any

Valeur renvoyée

Renvoie true si les deux valeurs sont égales, en considérant les valeurs NULL comme comparables :

  • Renvoie true si x = y.
    • Renvoie true si x et y sont tous deux NULL.
    • Renvoie false si x != y, ou si une seule de ces deux valeurs est NULL. Bool

Exemples

Utilisation de base avec des nombres et des valeurs NULL

SELECT
    isNotDistinctFrom(1, 1) AS result_1,
    isNotDistinctFrom(1, 2) AS result_2,
    isNotDistinctFrom(NULL, NULL) AS result_3,
    isNotDistinctFrom(NULL, 1) AS result_4
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘

less

Introduit dans : v1.1.0

Compare deux valeurs selon la relation « inférieur à ».

Syntaxe

less(a, b)
    -- a < b

Arguments

  • a — Première valeur.* - b — Deuxième valeur.*

Valeur renvoyée

Renvoie 1 si a est inférieur à b, sinon 0 UInt8

Exemples

Exemple d'utilisation

SELECT 1 < 2, 2 < 1;
┌─less(1, 2)─┬─less(2, 1)─┐
│          1 │          0 │
└────────────┴────────────┘

lessOrEquals

Introduit dans : v1.1.0

Compare deux valeurs selon une relation inférieure ou égale.

Syntaxe

lessOrEquals(a, b)
-- a <= b

Arguments

  • a — Première valeur.* - b — Deuxième valeur.*

Valeur renvoyée

Renvoie 1 si a est inférieur ou égal à b, sinon 0 UInt8

Exemples

Exemple d'utilisation

SELECT 1 <= 2, 2 <= 2, 3 <= 2;
┌─lessOrEquals(1, 2)─┬─lessOrEquals(2, 2)─┬─lessOrEquals(3, 2)─┐
│                  1 │                  1 │                  0 │
└────────────────────┴────────────────────┴────────────────────┘

notEquals

Introduit dans : v1.1.0

Compare deux valeurs pour déterminer si elles sont différentes.

Syntaxe

notEquals(a, b)
    -- a != b
    -- a <> b

Arguments

  • a — Première valeur.* - b — Deuxième valeur.*

Valeur renvoyée

Renvoie 1 si a est différent de b, sinon 0. UInt8

Exemples

Exemple d'utilisation

SELECT 1 != 2, 1 != 1;
┌─notEquals(1, 2)─┬─notEquals(1, 1)─┐
│               1 │               0 │
└─────────────────┴─────────────────┘

notIn

Introduit dans : v1.1.0

Vérifie si l'opérande de gauche n'appartient PAS à l'ensemble de l'opérande de droite. Renvoie 1 s'il n'appartient pas à l'ensemble, 0 sinon. Les valeurs NULL de l'opérande de gauche sont ignorées.

Syntaxe

notIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x n’est pas dans l’ensemble, sinon 0. UInt8

Exemples

Utilisation de base

SELECT 4 NOT IN (1, 2, 3)
1

notInIgnoreSet

Introduit dans : v1.1.0

Vérifie si l'opérande de gauche n'appartient PAS à l'ensemble de l'opérande de droite. Renvoie 1 s'il n'appartient pas à l'ensemble, 0 sinon. Les valeurs NULL dans l'opérande de gauche sont ignorées. Il s'agit de la variante IgnoreSet utilisée pour l'analyse de type sans créer l'ensemble.

Syntaxe

notIn(x, set)

Arguments

  • x — Valeur à vérifier. - set — Ensemble de valeurs.

Valeur renvoyée

Renvoie 1 si x n’est pas dans l’ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT 4 NOT IN (1, 2, 3)
1

notNullIn

Introduit dans : v1.1.0

Vérifie si l'opérande de gauche n'appartient PAS à l'ensemble de l'opérande de droite. Contrairement à notIn, les valeurs NULL ne sont pas ignorées : NULL est comparé aux éléments de l'ensemble, et NULL = NULL est évalué à true.

Syntaxe

notNullIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x n’est pas dans l’ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT notNullIn(NULL, tuple(1, NULL))
1

notNullInIgnoreSet

Introduit dans : v1.1.0

Vérifie si l’opérande de gauche n’appartient PAS à l’ensemble de l’opérande de droite. Contrairement à notIn, les valeurs NULL ne sont pas ignorées : NULL est comparé aux éléments de l’ensemble, et NULL = NULL est évalué à true. Il s’agit de la variante IgnoreSet utilisée pour l’analyse de type sans créer l’ensemble.

Syntaxe

notNullIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x n’appartient pas à l’ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT notNullIn(NULL, tuple(1, NULL))
1

nullIn

Introduit dans : v1.1.0

Vérifie si l’opérande de gauche appartient à l’ensemble de l’opérande de droite. Contrairement à in, les valeurs NULL ne sont pas ignorées : NULL est comparé aux éléments de l’ensemble, et NULL = NULL est évalué à true.

Syntaxe

nullIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x appartient à l’ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT nullIn(NULL, tuple(1, NULL))
0

nullInIgnoreSet

Introduit dans : v1.1.0

Vérifie si l’opérande de gauche appartient à l’ensemble de l’opérande de droite. Contrairement à in, les valeurs NULL ne sont pas ignorées : NULL est comparé aux éléments de l’ensemble, et NULL = NULL est évalué à true. Il s’agit de la variante IgnoreSet utilisée pour l’analyse de type sans créer l’ensemble.

Syntaxe

nullIn(x, set)

Arguments

  • x — La valeur à vérifier. - set — L’ensemble des valeurs.

Valeur renvoyée

Renvoie 1 si x appartient à l’ensemble, 0 sinon. UInt8

Exemples

Utilisation de base

SELECT nullIn(NULL, tuple(1, NULL))
0
Navigation