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
NULL, use:
De lo contrario, una expresión con NULL nunca se cumplirá.
Filtrar datos con operadores lógicos
WHERE para combinar varias condiciones:
Uso de columnas UInt8 como condición
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
Coincidencia de patrones y expresiones condicionales
WHERE.
Consulte “Coincidencia de patrones y expresiones condicionales” para ver ejemplos de uso.
Expresión con literales, columnas o subconsultas
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
NULL:
Filtrado de datos con operadores lógicos
AND - se deben cumplir ambas condiciones:
OR - al menos una condición debe cumplirse:
NOT - Niega una condición:
XOR - Exactamente una condición debe cumplirse (no ambas):
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
Uso de operadores de comparación
= 1 o = true):
false (= 0 o = false):
!= 0 o != false):
IN:
En el siguiente ejemplo, (1, true) es una tupla.