A Cláusula WHERE
A cláusula WHERE permite filtrar os dados provenientes da cláusula FROM de SELECT.
Se houver uma cláusula WHERE, ela deve conter uma expressão com o UInt8tipo. Geralmente, é uma expressão com operadores de comparação e lógicos. As linhas em que essa expressão é avaliada 0 são excluídas de transformações ou resultados posteriores.
A expressão WHERE é avaliada com base na capacidade de usar índices e poda de partições, se o mecanismo de tabela subjacente oferecer suporte a isso.
Observação
Existe uma otimização de filtragem chamada PREWHERE .
Se você precisar testar um valor para NULL , use os operadores IS NULL e IS NOT NULL ou as funções isNull e isNotNull . Caso contrário, uma expressão com NULL nunca passará.
Exemplo
Para encontrar números que são múltiplos de 3 e são maiores que 10, execute a seguinte consulta na tabela de números :
SELECT number FROM numbers(20) WHERE (number > 10) AND (number % 3 == 0);
Resultado:
Consultas com valores NULL:
CREATE TABLE t_null(x Int8, y Nullable(Int8)) ENGINE=MergeTree() ORDER BY x;
INSERT INTO t_null VALUES (1, NULL), (2, 3);
SELECT * FROM t_null WHERE y IS NULL;
SELECT * FROM t_null WHERE y != 0;
Resultado:
PREWHERE Clause. Clickhouse.com. Disponível em:
https://clickhouse.com/docs/en/sql-reference/statements/select/where. Acesso em: 09 Set 2024.