> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentation des fonctions de comparaison

# Fonctions de comparaison

<div id="comparison-rules">
  ## Règles de comparaison
</div>

Les fonctions de comparaison ci-dessous renvoient `0` ou `1`, de type [UInt8](/fr/reference/data-types/int-uint). 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)

<Note>
  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.
</Note>

{/*AUTOGENERATED_START*/}

<div id="equals">
  ## equals
</div>

Introduit dans : v1.1.0

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

**Syntaxe**

```sql theme={null}
equals(a, b)
        -- a = b
        -- a == b
```

**Arguments**

* `a` — Première valeur.<sup>[\*](#comparison-rules)</sup> - `b` — Deuxième valeur.<sup>[\*](#comparison-rules)</sup>

**Valeur renvoyée**

Renvoie `1` si `a` est égal à `b`, sinon `0` [`UInt8`](/fr/reference/data-types/int-uint)

**Exemples**

**Exemple d’utilisation**

```sql title=Query theme={null}
SELECT 1 = 1, 1 = 2;
```

```response title=Response theme={null}
┌─equals(1, 1)─┬─equals(1, 2)─┐
│            1 │            0 │
└──────────────┴──────────────┘
```

<div id="globalIn">
  ## globalIn
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT 1 IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="globalInIgnoreSet">
  ## globalInIgnoreSet
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT 1 IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="globalNotIn">
  ## globalNotIn
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT 4 NOT IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="globalNotInIgnoreSet">
  ## globalNotInIgnoreSet
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT 4 NOT IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="globalNotNullIn">
  ## globalNotNullIn
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT notNullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
0
```

<div id="globalNotNullInIgnoreSet">
  ## globalNotNullInIgnoreSet
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT notNullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
0
```

<div id="globalNullIn">
  ## globalNullIn
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT nullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
1
```

<div id="globalNullInIgnoreSet">
  ## globalNullInIgnoreSet
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT nullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
1
```

<div id="greater">
  ## greater
</div>

Introduit dans : v1.1.0

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

**Syntaxe**

```sql theme={null}
greater(a, b)
    -- a > b
```

**Arguments**

* `a` — Première valeur.<sup>[\*](#comparison-rules)</sup> - `b` — Deuxième valeur.<sup>[\*](#comparison-rules)</sup>

**Valeur renvoyée**

Renvoie `1` si `a` est supérieur à `b`, sinon `0` [`UInt8`](/fr/reference/data-types/int-uint)

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT 2 > 1, 1 > 2;
```

```response title=Response theme={null}
┌─greater(2, 1)─┬─greater(1, 2)─┐
│             1 │             0 │
└───────────────┴───────────────┘
```

<div id="greaterOrEquals">
  ## greaterOrEquals
</div>

Introduit dans : v1.1.0

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

**Syntaxe**

```sql theme={null}
greaterOrEquals(a, b)
    -- a >= b
```

**Arguments**

* `a` — Première valeur.<sup>[\*](#comparison-rules)</sup> - `b` — Deuxième valeur.<sup>[\*](#comparison-rules)</sup>

**Valeur renvoyée**

Renvoie `1` si `a` est supérieur ou égal à `b`, sinon `0` [`UInt8`](/fr/reference/data-types/int-uint)

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT 2 >= 1, 2 >= 2, 1 >= 2;
```

```response title=Response theme={null}
┌─greaterOrEquals(2, 1)─┬─greaterOrEquals(2, 2)─┬─greaterOrEquals(1, 2)─┐
│                     1 │                     1 │                     0 │
└───────────────────────┴───────────────────────┴───────────────────────┘
```

<div id="in">
  ## in
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT 1 IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="inIgnoreSet">
  ## inIgnoreSet
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT 1 IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="isDistinctFrom">
  ## isDistinctFrom
</div>

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**

```sql theme={null}
isDistinctFrom(x, y)
```

**Arguments**

* `x` — Première valeur à comparer. Peut être de n’importe quel type de données ClickHouse. [`Any`](/fr/reference/data-types/index)
* `y` — Deuxième valeur à comparer. Peut être de n’importe quel type de données ClickHouse. [`Any`](/fr/reference/data-types/index)

**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`](/fr/reference/data-types/boolean)

**Exemples**

**Utilisation de base avec des nombres et des NULL**

```sql title=Query theme={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
```

```response title=Response theme={null}
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘
```

<div id="isNotDistinctFrom">
  ## isNotDistinctFrom
</div>

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**

```sql theme={null}
isNotDistinctFrom(x, y)
```

**Arguments**

* `x` — Première valeur à comparer. Peut être de n’importe quel type de données ClickHouse. [`Any`](/fr/reference/data-types/index)
* `y` — Deuxième valeur à comparer. Peut être de n’importe quel type de données ClickHouse. [`Any`](/fr/reference/data-types/index)

**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`](/fr/reference/data-types/boolean)

**Exemples**

**Utilisation de base avec des nombres et des valeurs NULL**

```sql title=Query theme={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
```

```response title=Response theme={null}
┌─result_1─┬─result_2─┬─result_3─┬─result_4─┐
│        1 │        0 │        1 │        0 │
└──────────┴──────────┴──────────┴──────────┘
```

<div id="less">
  ## less
</div>

Introduit dans : v1.1.0

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

**Syntaxe**

```sql theme={null}
less(a, b)
    -- a < b
```

**Arguments**

* `a` — Première valeur.<sup>[\*](#comparison-rules)</sup> - `b` — Deuxième valeur.<sup>[\*](#comparison-rules)</sup>

**Valeur renvoyée**

Renvoie `1` si `a` est inférieur à `b`, sinon `0` [`UInt8`](/fr/reference/data-types/int-uint)

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT 1 < 2, 2 < 1;
```

```response title=Response theme={null}
┌─less(1, 2)─┬─less(2, 1)─┐
│          1 │          0 │
└────────────┴────────────┘
```

<div id="lessOrEquals">
  ## lessOrEquals
</div>

Introduit dans : v1.1.0

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

**Syntaxe**

```sql theme={null}
lessOrEquals(a, b)
-- a <= b
```

**Arguments**

* `a` — Première valeur.<sup>[\*](#comparison-rules)</sup> - `b` — Deuxième valeur.<sup>[\*](#comparison-rules)</sup>

**Valeur renvoyée**

Renvoie `1` si `a` est inférieur ou égal à `b`, sinon `0` [`UInt8`](/fr/reference/data-types/int-uint)

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT 1 <= 2, 2 <= 2, 3 <= 2;
```

```response title=Response theme={null}
┌─lessOrEquals(1, 2)─┬─lessOrEquals(2, 2)─┬─lessOrEquals(3, 2)─┐
│                  1 │                  1 │                  0 │
└────────────────────┴────────────────────┴────────────────────┘
```

<div id="notEquals">
  ## notEquals
</div>

Introduit dans : v1.1.0

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

**Syntaxe**

```sql theme={null}
notEquals(a, b)
    -- a != b
    -- a <> b
```

**Arguments**

* `a` — Première valeur.<sup>[\*](#comparison-rules)</sup> - `b` — Deuxième valeur.<sup>[\*](#comparison-rules)</sup>

**Valeur renvoyée**

Renvoie `1` si `a` est différent de `b`, sinon `0`. [`UInt8`](/fr/reference/data-types/int-uint)

**Exemples**

**Exemple d'utilisation**

```sql title=Query theme={null}
SELECT 1 != 2, 1 != 1;
```

```response title=Response theme={null}
┌─notEquals(1, 2)─┬─notEquals(1, 1)─┐
│               1 │               0 │
└─────────────────┴─────────────────┘
```

<div id="notIn">
  ## notIn
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT 4 NOT IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="notInIgnoreSet">
  ## notInIgnoreSet
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT 4 NOT IN (1, 2, 3)
```

```response title=Response theme={null}
1
```

<div id="notNullIn">
  ## notNullIn
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT notNullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
0
```

<div id="notNullInIgnoreSet">
  ## notNullInIgnoreSet
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT notNullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
0
```

<div id="nullIn">
  ## nullIn
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT nullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
1
```

<div id="nullInIgnoreSet">
  ## nullInIgnoreSet
</div>

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**

```sql theme={null}
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`](/fr/reference/data-types/int-uint)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT nullIn(NULL, tuple(1, NULL))
```

```response title=Response theme={null}
1
```
