Operadores para subconsultas multi-registro en SQL
Los operadores que podemos 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).
Ejemplos de Operadores para Subconsulta Multi-registro



