Pular para o conteúdo principal

Regras de comparação

As funções de comparação abaixo retornam 0 ou 1 com o tipo UInt8. Somente valores dentro do mesmo grupo podem ser comparados (por exemplo, UInt16 e UInt64), mas não valores de grupos diferentes (por exemplo, UInt16 e DateTime). É possível comparar números e strings, assim como strings com datas e datas com horas. Para tuplas e arrays, a comparação é lexicográfica, o que significa que ela é feita para cada elemento correspondente da tupla/array do lado esquerdo e do lado direito. Os tipos a seguir podem ser comparados:
  • números e decimais
  • strings e strings de tamanho fixo
  • datas
  • datas com horas
  • tuplas (comparação lexicográfica)
  • arrays (comparação lexicográfica)
As strings são comparadas byte a byte. Isso pode levar a resultados inesperados se uma das strings contiver caracteres de vários bytes codificados em UTF-8. Uma string S1 que tem outra string S2 como prefixo é considerada mais longa que S2.

equals

Introduzido em: v1.1.0 Compara dois valores para verificar se são iguais. Sintaxe
equals(a, b)
        -- a = b
        -- a == b
Argumentos
  • a — Primeiro valor.* - b — Segundo valor.*
Valor retornado Retorna 1 se a for igual a b; caso contrário, 0 UInt8 Exemplos Exemplo de uso
Query
SELECT 1 = 1, 1 = 2;
Response
┌─equals(1, 1)─┬─equals(1, 2)─┐
│            1 │            0 │
└──────────────┴──────────────┘

globalIn

Introduzido em: v1.1.0 Igual a in, mas usa a distribuição global do conjunto em consultas distribuídas. O conjunto é enviado a todos os servidores remotos. Sintaxe
globalIn(x, set)
Argumentos
  • x — O valor a ser verificado. - set — O conjunto de valores.
Valor retornado Retorna 1 se x estiver no conjunto; caso contrário, 0. UInt8 Exemplos Uso básico
Query
SELECT 1 IN (1, 2, 3)
Response
1

globalInIgnoreSet

Introduzido em: v1.1.0 Igual a in, mas usa a distribuição global do conjunto em consultas distribuídas. O conjunto é enviado a todos os servidores remotos. Esta é a variante IgnoreSet usada para análise de tipos sem criar o conjunto. Sintaxe
globalIn(x, set)
Argumentos
  • x — O valor a ser verificado. - set — O conjunto de valores.
Valor retornado Retorna 1 se x estiver no conjunto; caso contrário, 0. UInt8 Exemplos Uso básico
Query
SELECT 1 IN (1, 2, 3)
Response
1

globalNotIn

Introduzido em: v1.1.0 Igual a notIn, mas usa a distribuição global do conjunto em consultas distribuídas. O conjunto é enviado a todos os servidores remotos. Sintaxe
globalNotIn(x, set)
Argumentos
  • x — Valor a ser verificado. - set — O conjunto de valores.
Valor retornado Retorna 1 se x não estiver no conjunto e 0 caso contrário. UInt8 Exemplos Uso básico
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

globalNotInIgnoreSet

Introduzido em: v1.1.0 Igual a notIn, mas usa a distribuição global do conjunto em consultas distribuídas. O conjunto é enviado a todos os servidores remotos. Esta é a variante IgnoreSet usada para análise de tipos sem criar o conjunto. Sintaxe
globalNotIn(x, set)
Argumentos
  • x — Valor a ser verificado. - set — Conjunto de valores.
Valor retornado Retorna 1 se x não estiver no conjunto; caso contrário, 0. UInt8 Exemplos Uso básico
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

globalNotNullIn

Introduzido em: v1.1.0 Igual a notNullIn, mas usa a distribuição global do conjunto em consultas distribuídas. O conjunto é enviado a todos os servidores remotos. Sintaxe
globalNotNullIn(x, set)
Argumentos
  • x — O valor a ser verificado. - set — O conjunto de valores.
Valor retornado Retorna 1 se x não estiver no conjunto, 0 caso contrário. UInt8 Exemplos Uso básico
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

globalNotNullInIgnoreSet

Introduzido em: v1.1.0 Igual a notNullIn, mas usa a distribuição global do conjunto em consultas distribuídas. O conjunto é enviado a todos os servidores remotos. Esta é a variante IgnoreSet usada para análise de tipos sem criar o conjunto. Sintaxe
globalNotNullIn(x, set)
Argumentos
  • x — O valor a ser verificado. - set — O conjunto de valores.
Valor retornado Retorna 1 se x não estiver no conjunto; caso contrário, retorna 0. UInt8 Exemplos Uso básico
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

globalNullIn

Introduzido em: v1.1.0 Igual a nullIn, mas usa a distribuição global do conjunto em consultas distribuídas. O conjunto é enviado a todos os servidores remotos. Sintaxe
globalNullIn(x, set)
Argumentos
  • x — O valor a ser verificado. - set — O conjunto de valores.
Valor retornado Retorna 1 se x estiver no conjunto; caso contrário, 0. UInt8 Exemplos Uso básico
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

globalNullInIgnoreSet

Introduzido em: v1.1.0 Igual a nullIn, mas usa a distribuição global do conjunto em consultas distribuídas. O conjunto é enviado a todos os servidores remotos. Esta é a variante IgnoreSet usada para análise de tipos sem criar o conjunto. Sintaxe
globalNullIn(x, set)
Argumentos
  • x — O valor a ser verificado. - set — O conjunto de valores.
Valor retornado Retorna 1 se x estiver no conjunto; caso contrário, 0. UInt8 Exemplos Uso básico
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

greater

Introduzido em: v1.1.0 Compara dois valores para determinar se um é maior que o outro. Sintaxe
greater(a, b)
    -- a > b
Argumentos
  • a — Primeiro valor.* - b — Segundo valor.*
Valor retornado Retorna 1 se a for maior que b; caso contrário, 0 UInt8 Exemplos Exemplo de uso
Query
SELECT 2 > 1, 1 > 2;
Response
┌─greater(2, 1)─┬─greater(1, 2)─┐
│             1 │             0 │
└───────────────┴───────────────┘

greaterOrEquals

Introduzido em: v1.1.0 Compara dois valores para verificar se um é maior ou igual ao outro. Sintaxe
greaterOrEquals(a, b)
    -- a >= b
Argumentos
  • a — Primeiro valor.* - b — Segundo valor.*
Valor retornado Retorna 1 se a for maior ou igual a b; caso contrário, 0 UInt8 Exemplos Exemplo de uso
Query
SELECT 2 >= 1, 2 >= 2, 1 >= 2;
Response
┌─greaterOrEquals(2, 1)─┬─greaterOrEquals(2, 2)─┬─greaterOrEquals(1, 2)─┐
│                     1 │                     1 │                     0 │
└───────────────────────┴───────────────────────┴───────────────────────┘

in

Introduzido em: v1.1.0 Verifica se o operando à esquerda pertence ao conjunto do operando à direita. Retorna 1 se pertencer; caso contrário, 0. Valores NULL no operando à esquerda são ignorados (tratados como não pertencentes ao conjunto). Sintaxe
in(x, set)
Argumentos
  • x — O valor a ser verificado. - set — O conjunto de valores.
Valor retornado Retorna 1 se x estiver no conjunto, 0 caso contrário. UInt8 Exemplos Uso básico
Query
SELECT 1 IN (1, 2, 3)
Response
1

inIgnoreSet

Introduzido em: v1.1.0 Verifica se o operando à esquerda pertence ao conjunto do operando à direita. Retorna 1 se pertencer; caso contrário, 0. Valores NULL no operando à esquerda são ignorados (tratados como não pertencentes ao conjunto). Esta é a variante IgnoreSet usada para análise de tipos sem criar o conjunto. Sintaxe
in(x, set)
Argumentos
  • x — O valor a ser verificado. - set — O conjunto de valores.
Valor retornado Retorna 1 se x estiver no conjunto; caso contrário, 0. UInt8 Exemplos Uso básico
Query
SELECT 1 IN (1, 2, 3)
Response
1

isDistinctFrom

Introduzido em: v25.11.0 Executa uma comparação de “diferente de” com tratamento seguro de NULL entre dois valores. Retorna true se os valores forem distintos (não iguais), inclusive quando um valor for NULL e o outro não. Retorna false se os valores forem iguais ou se ambos forem NULL. Sintaxe
isDistinctFrom(x, y)
Argumentos
  • x — Primeiro valor a ser comparado. Pode ser qualquer tipo de dado do ClickHouse. Any
  • y — Segundo valor a ser comparado. Pode ser qualquer tipo de dado do ClickHouse. Any
Valor retornado Retorna true se os dois valores forem diferentes, tratando NULLs como comparáveis:
  • Retorna true se x != y.
    • Retorna true se exatamente um de x ou y for NULL.
    • Retorna false se x = y ou se x e y forem ambos NULL. Bool
Exemplos Uso básico com números e NULLs
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

Introduzido em: v23.8.0 Realiza uma comparação de “igualdade” com segurança para NULL entre dois valores. Retorna true se os valores forem iguais, inclusive quando ambos forem NULL. Retorna false se os valores forem diferentes ou se exatamente um deles for NULL. Sintaxe
isNotDistinctFrom(x, y)
Argumentos
  • x — Primeiro valor a ser comparado. Pode ser qualquer tipo de dado do ClickHouse. Any
  • y — Segundo valor a ser comparado. Pode ser qualquer tipo de dado do ClickHouse. Any
Valor retornado Retorna true se os dois valores forem iguais, tratando NULLs como comparáveis:
  • Retorna true se x = y.
    • Retorna true se x e y forem NULL.
    • Retorna false se x != y ou se exatamente um entre x e y for NULL. Bool
Exemplos Uso básico com números e NULLs
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

Introduzido em: v1.1.0 Compara dois valores para verificar se um é menor que o outro. Sintaxe
less(a, b)
    -- a < b
Argumentos
  • a — Primeiro valor.* - b — Segundo valor.*
Valor retornado Retorna 1 se a for menor que b; caso contrário, 0 UInt8 Exemplos Exemplo de uso
Query
SELECT 1 < 2, 2 < 1;
Response
┌─less(1, 2)─┬─less(2, 1)─┐
│          1 │          0 │
└────────────┴────────────┘

lessOrEquals

Introduzido em: v1.1.0 Compara dois valores para verificar se um é menor ou igual ao outro. Sintaxe
lessOrEquals(a, b)
-- a <= b
Argumentos
  • a — Primeiro valor.* - b — Segundo valor.*
Valor retornado Retorna 1 se a for menor ou igual a b; caso contrário, 0 UInt8 Exemplos Exemplo de uso
Query
SELECT 1 <= 2, 2 <= 2, 3 <= 2;
Response
┌─lessOrEquals(1, 2)─┬─lessOrEquals(2, 2)─┬─lessOrEquals(3, 2)─┐
│                  1 │                  1 │                  0 │
└────────────────────┴────────────────────┴────────────────────┘

notEquals

Introduzido em: v1.1.0 Compara dois valores para verificar se são diferentes. Sintaxe
notEquals(a, b)
    -- a != b
    -- a <> b
Argumentos
  • a — Primeiro valor.* - b — Segundo valor.*
Valor retornado Retorna 1 se a for diferente de b; caso contrário, 0. UInt8 Exemplos Exemplo de uso
Query
SELECT 1 != 2, 1 != 1;
Response
┌─notEquals(1, 2)─┬─notEquals(1, 1)─┐
│               1 │               0 │
└─────────────────┴─────────────────┘

notIn

Introduzido na versão: v1.1.0 Verifica se o operando à esquerda NÃO pertence ao conjunto do operando à direita. Retorna 1 se não pertencer ao conjunto; caso contrário, retorna 0. Valores NULL no operando à esquerda são ignorados. Sintaxe
notIn(x, set)
Argumentos
  • x — Valor a ser verificado. - set — Conjunto de valores.
Valor retornado Retorna 1 se x não estiver no conjunto, 0 caso contrário. UInt8 Exemplos Uso básico
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

notInIgnoreSet

Introduzido em: v1.1.0 Verifica se o operando esquerdo NÃO pertence ao conjunto do operando direito. Retorna 1 se não estiver no conjunto; caso contrário, retorna 0. Valores NULL no operando esquerdo são desconsiderados. Esta é a variante IgnoreSet usada para análise de tipos sem criar o conjunto. Sintaxe
notIn(x, set)
Argumentos
  • x — O valor a ser verificado. - set — O conjunto de valores.
Valor retornado Retorna 1 se x não estiver no conjunto; caso contrário, 0. UInt8 Exemplos Uso básico
Query
SELECT 4 NOT IN (1, 2, 3)
Response
1

notNullIn

Introduzido em: v1.1.0 Verifica se o operando à esquerda NÃO faz parte do conjunto do operando à direita. Diferentemente de notIn, os valores NULL não são ignorados: NULL é comparado com os elementos do conjunto, e NULL = NULL resulta em true. Sintaxe
notNullIn(x, set)
Argumentos
  • x — O valor a verificar. - set — O conjunto de valores.
Valor retornado Retorna 1 se x não estiver no conjunto, 0 caso contrário. UInt8 Exemplos Uso básico
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

notNullInIgnoreSet

Introduzido em: v1.1.0 Verifica se o operando à esquerda NÃO pertence ao conjunto do operando à direita. Diferentemente de notIn, os valores NULL não são ignorados: NULL é comparado com os elementos do conjunto, e NULL = NULL resulta em true. Esta é a variante IgnoreSet usada para análise de tipos sem criar o conjunto. Sintaxe
notNullIn(x, set)
Argumentos
  • x — O valor a ser verificado. - set — O conjunto de valores.
Valor retornado Retorna 1 se x não estiver no conjunto; caso contrário, 0. UInt8 Exemplos Uso básico
Query
SELECT notNullIn(NULL, tuple(1, NULL))
Response
0

nullIn

Introduzido em: v1.1.0 Verifica se o operando à esquerda é um membro do conjunto do operando à direita. Diferentemente de in, os valores NULL não são ignorados: NULL é comparado com os elementos do conjunto, e NULL = NULL é avaliado como true. Sintaxe
nullIn(x, set)
Argumentos
  • x — O valor a verificar. - set — O conjunto de valores.
Valor retornado Retorna 1 se x estiver no conjunto; caso contrário, 0. UInt8 Exemplos Uso básico
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1

nullInIgnoreSet

Introduzido na versão: v1.1.0 Verifica se o operando à esquerda é membro do conjunto do operando à direita. Diferentemente de in, os valores NULL não são ignorados: NULL é comparado com os elementos do conjunto, e NULL = NULL é avaliado como true. Esta é a variante IgnoreSet usada para análise de tipos sem criar o conjunto. Sintaxe
nullIn(x, set)
Argumentos
  • x — O valor a ser verificado. - set — O conjunto de valores.
Valor retornado Retorna 1 se x estiver no conjunto; caso contrário, 0. UInt8 Exemplos Uso básico
Query
SELECT nullIn(NULL, tuple(1, NULL))
Response
1
Última modificação em 10 de junho de 2026