Revista Informática

All

Publicado el 06 junio 2014 por Jamesrevelo @herprogramacion
El operador ALL de SQL es la representación del cuantificador universal ("para todo...") de lógica de predicados. Dicho cuantificador indica que una condición se cumple para TODOS los elementos de un conjunto. 
SQL ALL

Sintaxis

SELECT columna,...FROM tabla1,...WHERE expresión operador ALL(Subconsulta)
Este operador básicamente nos permitirá crear una condición mas compleja en la sentencia WHERE con los operadores de comparación. Donde compararemos los valores de una o varias columnas con los resultados de una subconsulta. La condición será verdadera si todas las comparaciones han sido verdaderas.
Como saber que tenemos que usar ALL?Cuando deseas crear una consulta que compare los elementos de una tabla con TODOS los elementos de otra tabla, y además que se cumpla una misma condición.
Como funciona ALL?A continuación te voy a mostrar un ejemplo de como sería el escaneo que usará nuestro SGBD cuando usemos el operador ALL. Vamos a emplear dos tablas llamadas T1 y T2, las cuales tienen un solo atributo llamado ELEMENTO de tipo entero. 
El objetivo de la consulta será encontrar todos los elementos de T1 que sean mayores o iguales a todos los elementos de T2. 
Tabla T1Tabla T2
Consulta
SELECT T1ELEMENTO FROM T1WHERE T1ELEMENTO >= ALL(SELECT T2ELEMENTO FROM T2)
Resultado
ALL Resultado
El proceso comienza por la subconsulta que devuelve todos los elementos de la tabla T2 al WHERE de la consulta externa. Luego se procede a comparar cada elemento de T1 con los 3 elementos de T2. Veamos todas las comparaciones que se realizaron y por que solo un elemento fue arrojado como resultado:
Elemento 1 de T1

ALL comparación 1

1>=2    FALSO

 

ALL comparación 2

1>=2    FALSO


ALL comparación 3

1>=3    FALSO


Como no se cumplieron las condiciones para todos los elementos, el elemento 1 de T1 no se incluye en el resultado final de la consulta.
Elemento 2 de T1

ALL comparación 4

2>=2    VERDADERO

ALL comparación 5

2>=2    VERDADERO

ALL comparación 6

2>=3    FALSO


Este elemento tuvo dos aciertos de tres, pero no vale, todas las condiciones deben ser ciertas para incluir el elemento en el resultado de la columna.
Elemento 3 de T1

ALL comparación 7

3>=2    VERDADERO

ALL comparación 8

3>=2    VERDADERO

ALL comparación 9

3>=3    VERDADERO


El elemento 3 fue el único que cumplió la misma condición para todos los elementos de T2, por esa razón es mostrado en los resultados de la consulta. 
Si aplicáramos el operador ALL a los elementos de la tabla T1 consigo misma obtendríamos el mayor valor de la tabla. La cual es otra alternativa diferente a la función de agregación MAX().
James Revelo Urrea - Desarrollador independiente

Volver a la Portada de Logo Paperblog