SQL ANY y ALL: Cómo se utiliza con WHERE o HAVING

Los operadores ANY y ALL se usan con una cláusula WHERE o HAVING. El operador ANY se utiliza cuando se quiere seleccionar registros si alguno de los valores de subconsulta cumple la condición.


Sintaxis ANY en SQL

El operador ANY devuelve verdadero si alguno de los valores de subconsulta cumple la condición.

SELECT nombre_columna(s)
FROM nombre_tabla
WHERE nombre_columna operator ANY
(SELECT nombre_columna 
FROM nombre_tabla 
WHERE condicion);

Ejemplos para utilizar el operador ANY

La siguiente instrucción SQL devuelve verdadero y enumera los nombres de los productos si encuentra algún registro en la tabla Catálogo en las que Cantidad = 20:

SELECT Nombre_Producto
FROM Producto
WHERE ProductoID = ALL 
(SELECT ProductoID 
FROM Catalogo 
WHERE Cantidad = 20);

La siguiente instrucción SQL devuelve verdadero y enumera los nombres de los productos si encuentra algún registro en la tabla de
Catálogo que tenga: Cantidad> 50:

SELECT Nombre_Producto
FROM Producto
WHERE ProductoID = ANY 
(SELECT ProductoID 
FROM Catalogo 
WHERE Cantidad > 50);

Sintaxis ALL en SQL

El operador ALL selecciona los valores si todos los registros de subconsulta cumplen la condición.

SELECT nombre_columna(s)
FROM nombre_tabla
WHERE nombre_columna operator ALL
(SELECT nombre_columna 
FROM nombre_tabla 
WHERE condicion);

Ejemplo del operador ALL en SQL:

La siguiente declaración SQL devuelve verdadero y enumera los nombres de productos si todos los registros en la tabla Catalogo tienen Cantidad = 15:

SELECT Nombre_Producto
FROM Producto
WHERE ProductoID = ALL (
SELECT ProductoID 
FROM Catalogo 
WHERE Cantidad = 15);