ANY e ALL

Compare um valor com cada linha que uma subconsulta devolve. ALL significa cada linha; ANY significa pelo menos uma.

Sintaxe

WHERE column operator ALL (SELECT ...)
WHERE column operator ANY (SELECT ...)
  • O operador é uma comparação como >, < ou =.
  • = ANY é o mesmo que IN. > ALL e > ANY não têm equivalente em IN.

Exemplo

SELECT name FROM products WHERE unit_price > ALL (SELECT unit_price FROM products WHERE category = 'drinks');

Produtos mais caros que cada bebida: as duas fatias de bolo e o Sourdough loaf.

Tabelas usadas: products. Experimente em uma lição abaixo.

Erros comuns

  • ALL de uma subconsulta vazia é verdadeiro para cada linha, o que raramente é o que você queria. ANY de uma subconsulta vazia nunca é verdadeiro.

Pratique