Saltar al contenido

Diferencia entre los operadores IN y ANY en SQL

Revisamos de forma exhaustivamente cada posts de nuestro sitio web con la meta de enseñarte siempre la información más veraz y actualizada.

Solución:

SQL>
SQL> -- Use the ANY operator in a WHERE clause to compare a value with any of the values in a list.
SQL>

SQL> — Debe colocar un =, <>, <, >, <=, or >= operador antes de ANY.

SQL> SELECT *
  2  FROM employee
  3  WHERE salary > ANY (2000, 3000, 4000);

Para en operador

SQL> -- Use the IN operator in a WHERE clause to compare a value with any of the values in a list.
SQL> SELECT *
  2  FROM employee
  3  WHERE salary IN (2000, 3000, 4000);

Pero con el operador IN no puedes usar =, <>, <, >, <=, or >=

EN – Igual a cualquier cosa en la lista

NINGÚN – Compara el valor con cada valor devuelto por la consulta secundaria.

TODOS – Compara el valor con cada valor devuelto por la consulta secundaria.

Por ejemplo:

EN:

¿Mostrar los detalles de todos los empleados cuyos salarios coinciden con las inversiones mínimas de los departamentos?

 Select Ename, Sal, Deptno 
 from Emp 
 Where Sal IN (Select Min(Sal) 
               From Emp 
               Group By Deptno);

NINGÚN:

< ANY significa menor que el valor máximo de la lista.

Obtenga los detalles de todos los empleados que ganan menos que el empleado con mayores ingresos que controla a otros empleados.

 Select Empno, Ename, Job, Sal 
 From Emp
 Where Sal < Any (Select Distinct MGR 
                  From Emp);

> ANY significa más que el valor mínimo en la lista.

Obtenga los detalles de todos los empleados que ganan más que los menos pagados del Departamento 10?

 Select Empno, Ename, Job, Sal 
 From Emp
 Where Sal > Any (Select Min(Sal) 
                  From Emp 
                  Where Deptno 10);

=CUALQUIERA es equivalente a En Operador.

Nota: ALGUNOS también se usa en lugar de CUALQUIERA.

Quizás para una mejor comprensión, estas dos condiciones son equivalentes. Es una cuestión de gusto cuál usa (siempre que el RDBMS sea compatible con ambos)

... WHERE x IN (SELECT Y FROM THE_TABLE)  
... WHERE x =ANY (SELECT Y FROM THE_TABLE) 

y estos tambien

... WHERE x NOT IN (SELECT Y FROM THE_TABLE) 
... WHERE x <>ALL (SELECT Y FROM THE_TABLE) 

En realidad, mi hábito personal es usar IN para la expresión de lista (como WHERE x IN (2,4,6,8) y =ANYresp. <>ALL para subconsultas.

Te mostramos las comentarios y valoraciones de los usuarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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