Saltar al contenido principal
La cláusula WHERE le permite filtrar los datos que provienen de la cláusula FROM de SELECT. Si hay una cláusula WHERE, debe ir seguida de una expresión de tipo UInt8. Las filas en las que esta expresión se evalúa como 0 se excluyen de transformaciones posteriores o del resultado. La expresión que sigue a la cláusula WHERE suele usarse con operadores de comparación y operadores lógicos, o con una de las muchas funciones regulares. Al evaluar la expresión WHERE, se tiene en cuenta si pueden utilizarse índices y la poda de particiones, siempre que el motor de tabla subyacente lo admita.
PREWHERETambién existe una optimización de filtrado llamada PREWHERE. Prewhere es una optimización que permite aplicar el filtrado de forma más eficiente. Está habilitada de forma predeterminada incluso si la cláusula PREWHERE no se especifica explícitamente.

Comprobación de NULL

Si necesita comprobar si un valor es NULL, use: De lo contrario, una expresión con NULL nunca se cumplirá.

Filtrar datos con operadores lógicos

Puede usar las siguientes funciones lógicas junto con la cláusula WHERE para combinar varias condiciones:

Uso de columnas UInt8 como condición

En ClickHouse, las columnas UInt8 pueden usarse directamente como condiciones booleanas, donde 0 es false y cualquier valor distinto de cero (normalmente 1) es true. Un ejemplo de esto se muestra en la sección siguiente.

Uso de los operadores de comparación

Se pueden usar los siguientes operadores de comparación:

Coincidencia de patrones y expresiones condicionales

Además de los operadores de comparación, puede usar la coincidencia de patrones y las expresiones condicionales en la cláusula WHERE. Consulte “Coincidencia de patrones y expresiones condicionales” para ver ejemplos de uso.

Expresión con literales, columnas o subconsultas

La expresión que sigue a la cláusula WHERE también puede incluir literales, columnas o subconsultas, que son sentencias SELECT anidadas que devuelven valores usados en las condiciones. Puede combinar literales, columnas y subconsultas en condiciones complejas:

Ejemplos

Comprobación de NULL

Consultas con valores NULL:

Filtrado de datos con operadores lógicos

Dada la siguiente tabla y estos datos:
1. AND - se deben cumplir ambas condiciones:
2. OR - al menos una condición debe cumplirse:
3. NOT - Niega una condición:
4. XOR - Exactamente una condición debe cumplirse (no ambas):
5. Combinación de varios operadores:
6. Uso de la sintaxis de funciones:
La sintaxis con palabras clave de SQL (AND, OR, NOT, XOR) suele ser más legible, pero la sintaxis funcional puede resultar útil en expresiones complejas o al crear consultas dinámicas.

Uso de columnas UInt8 como condición

Tomando la tabla de un ejemplo anterior, puedes usar directamente el nombre de una columna como condición:

Uso de operadores de comparación

Los siguientes ejemplos utilizan la tabla y los datos del ejemplo anterior. Se omiten los resultados por motivos de brevedad. 1. Igualdad explícita con true (= 1 o = true):
2. Igualdad explícita con false (= 0 o = false):
3. Desigualdad (!= 0 o != false):
4. Mayor que:
5. Menor o igual que:
6. Combinación con otras condiciones:
7. Uso del operador IN: En el siguiente ejemplo, (1, true) es una tupla.
También puedes usar un array para ello:
8. Mezcla de estilos de comparación:

Coincidencia de patrones y expresiones condicionales

Los ejemplos siguientes usan la tabla y los datos del ejemplo anterior. Se omiten los resultados por brevedad.

Ejemplos de LIKE

Ejemplos de ILIKE

Ejemplos de IF

Ejemplos de multiIf

Ejemplos de CASE

CASE simple:
CASE con condiciones de búsqueda:
Última modificación el 19 de junio de 2026