Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funções de Comparação

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)

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

SELECT 1 = 1, 1 = 2;
┌─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

SELECT 1 IN (1, 2, 3)
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

SELECT 1 IN (1, 2, 3)
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

SELECT 4 NOT IN (1, 2, 3)
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

SELECT 4 NOT IN (1, 2, 3)
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

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

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

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

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

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

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

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

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

SELECT 2 > 1, 1 > 2;
┌─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

SELECT 2 >= 1, 2 >= 2, 1 >= 2;
┌─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

SELECT 1 IN (1, 2, 3)
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

SELECT 1 IN (1, 2, 3)
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

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

Introduzido em: v23.8.0

Realiza uma comparação de "igualdade" com tratamento seguro de 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

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

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

SELECT 1 < 2, 2 < 1;
┌─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

SELECT 1 <= 2, 2 <= 2, 3 <= 2;
┌─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

SELECT 1 != 2, 1 != 1;
┌─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

SELECT 4 NOT IN (1, 2, 3)
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

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

notNullIn

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.

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

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

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

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

nullIn

Introduzido em: v1.1.0

Verifica se o operando à esquerda pertence ao 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

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

nullInIgnoreSet

Introduzido na versão: v1.1.0

Verifica se o operando à esquerda pertence ao 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

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