Tema SQL
WHERE: predicados y filtros
Filtrar filas antes del GROUP BY con comparaciones, IN, LIKE, BETWEEN, IS NULL y EXISTS.
Descripción
WHERE se evalúa tras FROM/JOIN y antes de GROUP BY. Aquí se aplican las condiciones por fila que reducen el conjunto de datos (manual §8.3).
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
SELECT columnas
FROM tabla
WHERE condición;
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- Comparación
- =, <>, >, <, >=, <=; != puede existir según motor.
- NULL
- Usa IS NULL / IS NOT NULL; = NULL no es válido en SQL estándar.
- EXISTS
- Subconsulta correlacionada o no: verdadero si hay al menos una fila.
Ejemplos
Ejemplo 1
SELECT id, nombre
FROM empleados
WHERE salario > 50000
AND departamento_id IN (1, 2, 3)
AND correo IS NOT NULL;
Ejemplo 2
SELECT * FROM pedidos WHERE estado <> 'cancelado' AND total IS NOT NULL;
Temas relacionados
Enlaces internos para seguir leyendo: SELECT, WHERE, JOIN, GROUP BY y el resto de la referencia SQL.
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.