Operadores para Subconsultas multi-registro
Los operadores que se pueden usar con una subconsulta que devuelve más de un registro son:
- El operador IN: Compara uno o varios valores, con todos los valores que devuelve la subconsulta. La condición se cumple si el valor está dentro de los valores que devuelve la subconsulta.
Ejemplo: SELECT * FROM employees WHERE department_id IN (SELECT department_id FROM departments WHERE department_name = [Marketing]). El operador ANY: Compara uno o varios valores, con cualquiera de los valores que devuelve la subconsulta. La condición se cumple con solo coincidir un valor. Se usa con los operadores aritméticos de comparación: =, «, «, , «=, =.
- « ANY : Tiene que ser menor que cualquier valor que devuelva la subconsulta. Es decir, menor que el mayor de la subconsulta.
Ejemplo: SELECT job_title FROM jobs WHERE max_salary « ANY (SELECT min_salary FROM jobs ).
ANY: Tiene que ser mayor a cualquiera que devuelva la subconsulta. Es decir, mayor que el menor de la subconsulta.
Ejemplo: SELECT job_title FROM jobs WHERE min_salary ANY (SELECT max_salary FROM jobs ).
- = ANY: Es el equivalente al in.
Ejemplo: SELECT department_id, department_name nombre FROM departments WHERE department_id = ANY (select department_id FROM employees).
El operador ALL: Compara uno o varios valores, con todos los valores que devuelve la subconsulta. Da verdadero si todas las comparaciones se cumplen. Se usa con los operadores aritméticos de comparación: =, «, «, , «=, =.
- ALL: Tiene que ser mayor a todos los valores de la subconsulta. Mayor que el mayor valor de la subconsulta. Ejemplo: SELECT job_title FROM jobs WHERE min_salary ALL (SELECT max_salary FROM jobs).
- « ALL: Tiene que ser menor a todos los valores de la subconsulta. Menor que el menor de los valores de la subconsulta.
Ejemplo: SELECT job_title FROM jobs WHERE max_salary « ALL ( SELECT min_salary FROM jobs).
operadores subconsultas multi registro