24-ANY y ALL en SQL

Los operadores ANY y ALL permiten realizar la comparacion entre un solo valor de la columna y un rango de otros valores

El operador ANY devuelve un booleano (true, false)

Si alguno de los valores cumple la condicion, devuelve un true

ANY Sintaxis

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
(SELECT column_name
FROM table_name
WHERE condition); 
    



Nota. El operador debe ser una comparación estándar operador(Mayor, Menor, Igual etc)

El operador ALL

Igual que el anterior operador, devuelve un booleano

devuelve true si TODOS los valores de la subconsulta cumplen la condición

se usa con SELECT, WHEREy HAVING declaraciones

ALL significa que la condición será verdadera solo si la operación es verdadera para todos los valores en el rango.

...

ALL Sintaxis con SELECT

SELECT ALL column_name(s)
FROM table_name
WHERE condition; 
    



ALL Sintaxis con WHERE o HAVING

SELECT column_name(s)
FROM table_name
 WHERE column_name operator ALL
 (SELECT column_name
 FROM table_name
 WHERE condition); 
    



NOTA El operador debe ser una comparación estándar operador( mayor, menor, igual etc)




Ejemplos de SQL ANY

La siguiente instrucción SQL enumera el ProductName si encuentra CUALQUIER registro en la tabla OrderDetails que tenga una Cantidad igual a 10 (esto devuelva VERDADERO porque la columna Cantidad tiene algunos valores de 10):

SELECT ProductName
FROM Products
 WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
 WHERE Quantity = 10);
        



La siguiente instrucción SQL enumera el ProductName si encuentra CUALQUIER registro en la tabla OrderDetails que tenga una Cantidad superior a 99 (esto devolverá VERDADERO porque la columna Cantidad tiene algunos valores mayores que 99):

SELECT nombreProducto
FROM Productos
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
 WHERE Quantity > 99); 
            



La siguiente instrucción SQL enumera el ProductName si encuentra CUALQUIER registro en la tabla OrderDetails que tenga una cantidad superior a 1000 (esto devolverá FALSO porque la columna Cantidad no tiene valores mayores de 1000):

SELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 1000); 



La siguiente instrucción SQL enumera TODOS los nombres de productos:

SELECT ALL ProductName
FROM Products
WHERE TRUE; 



La siguiente instrucción SQL enumera el ProductName si TODOS los registros en el La tabla OrderDetails tiene una Cantidad igual a 10. Esto, por supuesto, devolverá FALSO porque la columna Cantidad tiene muchos valores diferentes (no solo el valor de 10):

SELECT ProductName
FROM Products
 WHERE ProductID = ALL
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10); 




Publicar un comentario

0 Comentarios