SQL ALL: Operador de Subconsulta

El operador SQL ALL se puede usar para hacer comparación a un valor en el conjunto de valores de una subconsulta. En otras palabras, este comando asegura que una condición sea «igual», «diferente», «mayor», «menor», «mayor o igual» o «menor o igual» para todos los resultados devueltos por una subconsulta.

El operador SQL ALL devuelve VERDADERO si todos los valores del conjunto de resultados obtenidos de una subconsulta cumplen la condición especificada. El operador se puede usar junto con una instrucción SELECT, WHERE y una cláusula HAVING.

Sintaxis operador SQL ALL

Este comando es utilizado en una prueba condicional entre el operador de condición y la subconsulta. Así es la sintaxis del operador SQL ALL:

SELECT column1, column2, column3, ...
FROM tabla_nombre
WHERE column_nombre operador(<) ALL
(SELECT column1, column2, ...
FROM tabla_nombre WHERE condición2);

A saber: Los operadores condicionales pueden ser los siguientes: =, <, >, <>, =, <=, >=, > o <. El operador SQL ALL debe ir precedido de un operador de comparación y seguido de una subconsulta. 

  • >ALL(…) En la condicion2 del where, los valores tienen que ser mayores que el valor mayor del conjunto para evaluar como verdadero.
  • >= ALL(…) En la condicion2 del where, los valores  tienen que ser mayores o iguales que el valor mayor del conjunto para evaluar como verdadero.
  • < ALL(…) En la condicion2 del where, los valores tienen que ser menores que el valor más bajo del conjunto para evaluar como verdadero.
  • < = ALL(…) En la condicion2 del where, los valores tienen que ser menores o iguales que el valor más bajo del conjunto para evaluar como verdadero.
  • <> ALL(…) Los valores en la condicion2 donde esta la cláusula where, no deben ser iguales a ningún valor del conjunto que se va a evaluar como verdadero.
  •  = ALL(…) Los valores de la columna de la condicion2 del where, deben ser iguales 

Ejemplo del operador SQL ALL

Imaginemos una consulta similar a la sintaxis básica presentada anteriormente:

sql all

En esta consulta retorna los valores de la tabla cliente y los resultados con el mismo nombre en la tabla pedido y con un valor en el costo mayor a 100.

Ejemplo del operador ALL con Having

Por ejemplo, la siguiente consulta SQL busca todos los clientes que han realizado pedidos de todos los productos:

SELECT cliente_nombre
FROM clientes
WHERE cliente_id = ALL (SELECT cliente_id
FROM pedidos
GROUP BY cliente_id
HAVING COUNT(DISTINCT producto_id) = (SELECT COUNT(*) FROM productos))

Esta consulta utiliza el operador ALL para comparar el número de ID de producto distintos para cada cliente en la tabla de pedidos con el número total de productos en la tabla de productos. Si el número de ID de producto distintos para un cliente es igual al número total de productos, significa que el cliente ha realizado pedidos de todos los productos y la consulta devuelve el nombre del cliente.

Operador ALL con Update

Supongamos que la empresa ha decidido aumentar los salarios de los empleados que han estado ganando un salario mínimo hasta ahora a $2600. Escriba una consulta de actualización para realizar esta tarea.

Código:

UPDATE EMPLEADO SET salario = 2600 
WHERE salario <= ALL(SELECT MIN(salario) 
FROM EMPLEADO);

Operador ALL con la instrucción DELETE

El operador ALL, en el contexto de la instrucción DELETE, borra filas basada en una comparación con todos los valores que retorna una subconsulta.

DELETE FROM EMPLEADO
WHERE DEPART_id = ALL( SELECT manager_id
FROM departments
WHERE department_id = 'D01');

En este ejemplo, la subconsulta devuelve el departmato igual a ‘D01’. A continuación, la instrucción DELETE elimina las filas de la tabla «EMPLEADO» donde el departamento es igual «D01».

Puntos importantes 

Aquí hay algunos puntos importantes sobre el operador SQL ALL:

  • El operador ALL se utiliza en consultas SQL Server para comparar un valor con un conjunto de valores que provienen de una subconsulta.
  • La subconsulta debe devolver un conjunto de valores que se compararán con el valor dado en la consulta principal.
  • El operador ALL se utiliza comúnmente en consultas que requieren que se cumplan varias condiciones para que se devuelvan los resultados.
  • Algunas consultas comunes que utilizan el operador ALL incluyen la búsqueda de valores máximos o mínimos en un conjunto de resultados.

Deja un comentario