📊 ALL e ANY no SQL

Introdução

Os operadores ALL e ANY são utilizados em conjunto com subconsultas para comparar um valor com vários valores retornados por outra consulta.

Eles permitem criar comparações mais avançadas utilizando operadores como >, <, =, >= e <=.

📌 ALL compara com todos os valores retornados. ANY compara com pelo menos um valor retornado.

Operador ALL

O operador ALL exige que a condição seja verdadeira para todos os valores retornados pela subconsulta.


valor > ALL

(
    SELECT coluna

    FROM tabela
);
          

Significa: o valor deve ser maior que todos os valores retornados.

Exemplo com ALL

Encontrar funcionários que ganham mais que todos os salários do setor comercial.


SELECT nome, salario

FROM funcionarios


WHERE salario > ALL

(
    SELECT salario

    FROM funcionarios

    WHERE setor = 'Comercial'
);
          

Funcionamento do ALL


Salários Comercial:

3000

4000

5000


Consulta:

salario > ALL


Resultado:

Precisa ser maior que 5000
          

Operador ANY

O operador ANY retorna verdadeiro quando a comparação é satisfeita por pelo menos um valor da subconsulta.


valor > ANY

(
    SELECT coluna

    FROM tabela
);
          

Significa: o valor deve ser maior que pelo menos um valor retornado.

Exemplo com ANY

Encontrar funcionários que ganham mais que algum funcionário do setor comercial.


SELECT nome, salario

FROM funcionarios


WHERE salario > ANY

(
    SELECT salario

    FROM funcionarios

    WHERE setor = 'Comercial'
);
          

Funcionamento do ANY


Salários Comercial:

3000

4000

5000


Consulta:

salario > ANY


Resultado:

Precisa ser maior que 3000
          

ALL x ANY

ALL ANY
Todos os valores Pelo menos um valor
Mais restritivo Menos restritivo
Semelhante ao maior/menor valor Semelhante a uma comparação parcial

Relação com MAX e MIN

Algumas consultas com ALL e ANY podem ser substituídas por funções de agregação.


-- Usando ALL

salario > ALL(subconsulta)



-- Equivalente

salario > MAX(salario)
          

-- Usando ANY

salario > ANY(subconsulta)



-- Equivalente

salario > MIN(salario)
          

ALL e ANY com operadores

Operador Exemplo
> Maior que valores
< Menor que valores
= Igual aos valores
>= e <= Comparações completas

Aplicações no Mundo Real

Sistema Exemplo
RH Comparar salários
Financeiro Comparar valores de transações
E-commerce Analisar preços
Relatórios Comparações estatísticas

Erros Comuns

Erro Problema
Confundir ALL com ANY Resultado incorreto
Usar sem subconsulta Erro de sintaxe
Comparar tipos diferentes Falha na execução
Ignorar NULL Resultado inesperado

Boas Práticas

Resumo da Aula

🎓 Aula concluída! Agora você conhece ALL e ANY e sabe utilizá-los em comparações avançadas com subconsultas SQL.