ANY o SOME se utiliza en las subconsultas para realizar una comparación con los registros que devuelve la subconsulta. La comparación es verdadera si al menos un registro cumple la condición. Esta lección trata de enseñarle cómo realizar este tipo de consultas.
… col operator [ANY|SOME] subquery …
- 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.
Con ANY o SOME, la expresión es verdadera si es verdadera para al menos una de las líneas del conjunto de resultados de la subconsulta.
- Aplicación práctica
En la lógica del código fuente realizamos una lectura en la tabla de base de datos ZSCARRSA00001 obteniendo todos los registros que tienen al menos una entrada relacionada con el valor de la columna CARRID en la tabla de base de datos ZSPFLISA00001 para las conexiones con la ciudad de salida FRANKFURT. Para obtener esta información utilizamos una única sentencia SELECT con una subconsulta ANY o SOME.
- Implementamos el código fuente.
- Ejecute el programa.
- Conclusión
Si se reemplaza ANY por SOME el resultado es el mismo, la expresión es verdadera si en la tabla ZSPFLISA00001 existe al menos una entrada conjunta de resultados de la subconsulta.
El operador relacional (= o EQ) junto con ANY o SOME actúa como el uso de la subconsulta IN.