Banco de dados

1 resposta
edymrex

Alguém sabe descrever a diferença entre ANY e ALL ?

Crei algumas querys de exemplo:

SELECT e.ID,e.name,e.salary
 FROM Employee e
 WHERE e.salary > ANY (SELECT averageSalary FROM job j where j.averageSalary >= 5000)

 SELECT e.ID,e.name,e.salary
 FROM Employee e
 WHERE e.salary > ALL(SELECT averageSalary FROM job j where j.averageSalary)

ANY pelo que eu entendi, pega todos os funcionários que tenham sálario maior ou igual à 5000, eu até poderia colocar uma query mais complexa.
ALL pelo que eu entendi não importa se eu colocase à coluna averageSalary maior ou igual a 5000, usando ALL o select me retorna todos os
salários contidos na tabela employee que seja maior que o maior valor da coluna averageSalary da tabela job. É isto mesmo galera ?

1 Resposta

R

quando vc usa o any, ele traz os registros onde o salário é maior que qualquer valor retornado do subselect e quando usa o all ele traz os registros onde o salário é maior que todos os valores retornados no sub select, blz? qualquer dúvida posta aí…falow

editado:
agora que li direito o que você escreveu…heheh
na verdade é quase isso que você disse mesmo, só que no primeiro caso ao invés de retornar todos os funcionários com salário maior que 5000, ele traz todos os funcionários com salário maior do que qualquer valor presente no sub select, não sendo necessariamente 5000, pode ser um valor maior…

Criado 27 de junho de 2008
Ultima resposta 27 de jun. de 2008
Respostas 1
Participantes 2