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);
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias