Diferença entre o in e quaisquer operadores em sql

Qual é a diferença entre IN e ANY operadores em SQL ?

 27
sql
Author: Rob Fox, 2010-09-13

8 answers

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

SQL> -- você deve colocar um =, , , = operador antes de qualquer.

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

Para O Operador

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

Mas com o In você não pode usar =, , , =

 26
Author: Pranay Rana, 2010-09-13 10:06:01

IN - >igual a qualquer um na lista.

ANY - >compara o valor a cada valor devolvido pela sub-consulta.

ALL - >compara o valor a cada valor devolvido pela sub-consulta.

Por Exemplo:

Em: (Q): mostrar os detalhes de todos os empregados cujos salários estão coincidindo com menos investimentos de departamentos?

(A): SQL>seleccionar Ename Sal Deptno do Emp onde Sal IN (seleccionar Min (Sal) Do Grupo Emp pelo Deptno);

Qualquer:

Means Less Than The Valor máximo na lista.

(Q):obter os detalhes de todos os empregados que estão a ganhar menos do que o salário mais elevado que controlam outros Emp?

(A): SQL>seleccione Empno Ename Job Sl do Emp Onde Está O Sal?

Qualquer: - >Meaans superior ao valor mínimo da lista.

(Q):obter os detalhes de todos os Emps que estão ganhando mais do que o menos pago do Departamento 10?

(A): SQL>seleccionar Empno Ename Job Sal do Emp Em Que Sal>Qualquer [Seleccionar Min (Sal) Do Emp Em Que Deptno 10);

QUALQUER:->é equivalente a em Operador.

Nota: "Alguns" também são usados em qualquer.

 14
Author: Tejas Patel, 2010-09-13 10:09:26
Talvez para melhor compreensão, estas duas condições sejam equivalentes. É uma questão de gosto que você usa (desde que o RDBMS suporte ambos)
... WHERE x IN (SELECT Y FROM THE_TABLE)  
... WHERE x =ANY (SELECT Y FROM THE_TABLE) 

E estes também

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

Na verdade, o meu hábito pessoal é usar IN para a expressão da lista (como WHERE x IN (2,4,6,8) e =ANY, REP. <>ALL para sub-consultas.

 10
Author: Wernfried Domscheit, 2017-07-20 07:51:50

Ao usar tudo

Seleccione empno, sal De emp Em que todos (2000, 3000, 4000);

 EMPNO        SAL

  7839       5000

Irá devolver o resultado equivalente à consulta:

Seleccione empno, sal De emp Em que sal > 2000 e sal > 3000 e sal > 4000;

Ao usar qualquer

Seleccione empno, sal De emp Em que:(2000, 3000, 4000);

 EMPNO        SAL

  7566       2975
  7698       2850
  7782       2450
  7788       3000
  7839       5000
  7902       3000

Devolve um resultado igual ao

Seleccione empno, sal De emp ONDE sal > 2000 ou sal > 3000 ou sal > 4000;

 7
Author: user904876, 2014-04-24 03:06:40

Qualquer operador no servidor SQL 2008R2.

Usando o operador de comparação > como exemplo, >tudo significa maior do que cada valor--por outras palavras, maior do que o valor máximo. Por exemplo, >ALL (1, 2, 3) significa maior que 3. >Qualquer meio maior que pelo menos um valor, ou seja, maior que o mínimo. Então > qualquer (1, 2, 3) significa maior que 1.

Similarmente, >qualquer significa que para uma linha satisfazer a condição especificada na consulta externa, o valor na coluna isso introduz o subquery deve ser maior do que pelo menos um dos valores na lista de valores retornados pela subquery.

 2
Author: Vinoth_S, 2014-04-01 06:53:46

Com qualquer um, você precisa de um operador:

WHERE X > ANY (SELECT Y FROM Z)
É sempre um teste de igualdade.
 1
Author: Thomas Mueller, 2010-09-13 10:08:27

Todos os operadores são utilizados com uma cláusula de "WHERE" ou de "HAVING".

O operador qualquer devolve verdadeiro se algum dos valores da subconta satisfizer a condição.

O operador completo devolve verdadeiro se todos os valores da subconta satisfizerem a condição.

 1
Author: gady RajinikanthB, 2017-11-27 11:11:45

Quando estamos a comparar qualquer valor da coluna usando " In " algum conjunto diz {value1,value2 ...} então o valor da coluna deve estar presente no conjunto, mas no caso de qualquer um que compararmos como este:

col.value > ANY ({value1,value2,...})

Então o valor deve ser maior do que qualquer um dos valores definidos.

No caso de "todos"

col.value> ALL({value1,value2,...})

O valor deve ser superior a todos os valores do conjunto.

Consulte as seguintes imagens para uma melhor compreensão:

 0
Author: Lipsa Chhotray, 2018-09-04 19:48:44