Tema SQL
ANY, SOME y ALL
Comparar un valor contra el resultado de una subconsulta (cuantificadores).
Descripción
> ANY (subconsulta) es verdadero si supera al menos un valor; > ALL exige superar a todos. SOME es sinónimo de ANY en SQL estándar (manual §12.4–12.5).
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.
WHERE expresión operador ANY ( SELECT ... )
WHERE expresión operador ALL ( SELECT ... )
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.
- ANY / SOME
- Al menos una fila de la subconsulta cumple la comparación.
- ALL
- Todas las filas devueltas deben cumplir la comparación.
Ejemplos
Ejemplo 1
SELECT *
FROM productos
WHERE precio > ALL (
SELECT precio FROM productos WHERE categoria_id = 2
);
Ejemplo 2
SELECT * FROM t WHERE id = ANY (ARRAY[1,2,3]); -- PostgreSQL
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.