Passer au contenu principal

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)
Les chaînes sont comparées octet par octet. Cela peut produire des résultats inattendus si l’une des chaînes contient des caractères multi-octets encodés en UTF-8. Une chaîne S1 dont une autre chaîne S2 est le préfixe est considérée comme plus longue que S2.

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
Query
SELECT 1 = 1, 1 = 2;
Response
┌─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
Query
SELECT 1 IN (1, 2, 3)
Response
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
Query
SELECT 1 IN (1, 2, 3)
Response
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
Query
SELECT 4 NOT IN (1, 2, 3)
Response
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
Query
SELECT 4 NOT IN (1, 2, 3)
Response
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
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

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
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

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
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

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
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

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
Query
SELECT 2 > 1, 1 > 2;
Response
┌─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
Query
SELECT 2 >= 1, 2 >= 2, 1 >= 2;
Response
┌─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
Query
SELECT 1 IN (1, 2, 3)
Response
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
Query
SELECT 1 IN (1, 2, 3)
Response
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
Query
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
Response
┌─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
Query
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
Response
┌─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
Query
SELECT 1 < 2, 2 < 1;
Response
┌─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
Query
SELECT 1 <= 2, 2 <= 2, 3 <= 2;
Response
┌─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
Query
SELECT 1 != 2, 1 != 1;
Response
┌─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
Query
SELECT 4 NOT IN (1, 2, 3)
Response
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
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

notNullIn

Introduit dans : v1.1.0 Vérifie si l’opérande de gauche n’est PAS membre de 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
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

notNullInIgnoreSet

Introduit dans : v1.1.0 Vérifie si l’opérande de gauche n’est PAS membre de 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
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

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
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

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
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1
Dernière modification le 29 juin 2026