Subquery ALL

ALL se utiliza en las subconsultas para realizar una comparación con todos los registros que devuelve la subconsulta. Esta lección trata de enseñarle cómo realizar este tipo de consultas.

  • Sintaxis

… col operator [ALL] subquery …

  • Efecto
  • Listado de resultados de línea única

Si el conjunto de resultados de la subconsulta contiene sólo una línea, la comparación se puede realizar sin la especificación de ALL, ANY o SOME. La expresión es verdadera si la comparación correspondiente del valor de col con el resultado de la subconsulta escalar devuelve “true”. Si el conjunto de resultados para la subconsulta contiene varias líneas, se produce una excepción no controlada cuando se ejecuta la instrucción.

  • Listado de resultados de líneas múltiples

Si el conjunto de resultados de la subsquery contiene más de una línea, se debe especificar ALL, ANY o SOME.
Si utiliza ALL, la expresión es true si la comparación es verdadera para todas las líneas del conjunto de resultados de la subconsulta escalar.

  • Aplicación práctica

En la Subquery podemos utilizar la misma tabla para comparar en la condición del WHERE, por eso en la lógica del código fuente realizamos una lectura en la tabla de base de datos ZSAPLANESA00001 para obtener el código del fabricante de aviones (columna PRODUCER) con el mayor número de entradas en la tabla.

  1. Implementamos el código fuente.
  2. Ejecutamos el programa.
  • Conclusión

Con la ALL en la subconsulta se tienen en cuanta sólo los registros que cumplen la condición sobre todos los registros que devuelve la subconsulta. Si la subconsulta devuelve 10 registros la comparación se evalúa como verdadera si el valor de la columna a comparar cumple la condición con todos los 10 registros, en el ejemplo desarrollado si el COUNT es mayor que o igual que todos los registros que devuelve la subconsulta.
Un ejemplo empresarial para este tipo de consultas es: obtener el cliente que más compras ha realizado.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *