Pular para o conteúdo principal
A cláusula WHERE permite filtrar os dados que vêm da cláusulaFROM de SELECT. Se houver uma cláusula WHERE, ela deve ser seguida de uma expressão do tipo UInt8. As linhas para as quais essa expressão resulta em 0 são excluídas de transformações posteriores ou do resultado. A expressão que segue a cláusula WHERE costuma ser usada com operadores de comparação e operadores lógicos, ou com uma das muitas funções regulares. A expressão na cláusula WHERE é avaliada considerando a possibilidade de usar índices e poda de partições, se o engine de tabela subjacente oferecer suporte a isso.
PREWHERETambém há uma otimização de filtragem chamada PREWHERE. PREWHERE é uma otimização para aplicar a filtragem com mais eficiência. Ela é habilitada por padrão mesmo que a cláusula PREWHERE não seja especificada explicitamente.

Verificar NULL

Se você precisar testar se um valor é NULL, use: Caso contrário, uma expressão com NULL nunca será avaliada como verdadeira.

Filtrando dados com operadores lógicos

Você pode usar as seguintes funções lógicas em conjunto com a cláusula WHERE para combinar várias condições:

Usando colunas UInt8 como condição

No ClickHouse, colunas UInt8 podem ser usadas diretamente como condições booleanas, em que 0 é false e qualquer valor diferente de zero (geralmente 1) é true. Um exemplo disso é mostrado na seção abaixo.

Usando operadores de comparação

Os seguintes operadores de comparação podem ser usados:

Correspondência de padrões e expressões condicionais

Além dos operadores de comparação, você pode usar correspondência de padrões e expressões condicionais na cláusula WHERE. Consulte “Correspondência de padrões e expressões condicionais” para ver exemplos de uso.

Expressão com literais, colunas ou subconsultas

A expressão após a cláusula WHERE também pode incluir literais, colunas ou subconsultas, que são instruções SELECT aninhadas que retornam valores usados em condições. Você pode combinar literais, colunas e subconsultas em condições complexas:

Exemplos

Verificando NULL

Consultas com valores NULL:

Filtrando dados com operadores lógicos

Considere a tabela e os dados a seguir:
1. AND - ambas as condições devem ser atendidas:
2. OR - pelo menos uma condição deve ser atendida:
3. NOT - Nega uma condição:
4. XOR - Exatamente uma condição deve ser verdadeira (mas não ambas):
5. Combinando vários operadores:
6. Usando sintaxe de função:
A sintaxe com palavras-chave SQL (AND, OR, NOT, XOR) geralmente é mais legível, mas a sintaxe de função pode ser útil em expressões complexas ou ao criar consultas dinâmicas.

Usando colunas UInt8 como condição

Usando a tabela de um exemplo anterior, você pode usar o nome de uma coluna diretamente como condição:

Usando operadores de comparação

Os exemplos abaixo usam a tabela e os dados do exemplo acima. Os resultados foram omitidos por brevidade. 1. Igualdade explícita com true (= 1 ou = true):
2. Igualdade explícita com false (= 0 ou = false):
3. Desigualdade (!= 0 ou != false):
4. Maior que:
5. Menor ou igual a:
6. Em combinação com outras condições:
7. Usando o operador IN: No exemplo abaixo, (1, true) é uma tupla.
Você também pode usar um array para isso:
8. Mistura de estilos de comparação:

Correspondência de padrões e expressões condicionais

Os exemplos abaixo usam a tabela e os dados do exemplo acima. Os resultados foram omitidos por brevidade.

Exemplos de LIKE

Exemplos de ILIKE

Exemplos de IF

Exemplos de multiIf

Exemplos de CASE

CASE simples:
CASE com condição:
Última modificação em 2 de julho de 2026