INTERSECT e EXCEPT

Combine dois resultados de consulta: mantenha as linhas encontradas em ambos (INTERSECT) ou só na primeira (EXCEPT).

Sintaxe

query1 INTERSECT query2;
query1 EXCEPT query2;
  • As duas consultas precisam ter o mesmo número de colunas, com tipos compatíveis.
  • Ambas removem duplicatas. Adicione ALL para mantê-las. O Oracle chama EXCEPT de MINUS.

Exemplo

SELECT city FROM customers EXCEPT SELECT 'Paris' ORDER BY city;

Todas as cidades de clientes, exceto Paris.

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

Erros comuns

  • EXCEPT não é simétrico: A EXCEPT B é diferente de B EXCEPT A.
  • Aqui, NULLs são considerados iguais, diferente de uma comparação normal.

Pratique