INTERSECT e EXCEPT

Combina i risultati di due query: mantieni le righe trovate in entrambe (INTERSECT) o solo nella prima (EXCEPT).

Sintassi

query1 INTERSECT query2;
query1 EXCEPT query2;
  • Entrambe le query devono avere lo stesso numero di colonne, con tipi compatibili.
  • Entrambi rimuovono i duplicati. Aggiungi ALL per mantenerli. Oracle chiama EXCEPT MINUS.

Esempio

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

Ogni città dei clienti tranne Paris.

Tabelle usate: customers. Provalo in una lezione qui sotto.

Errori comuni

  • EXCEPT non è simmetrico: A EXCEPT B è diverso da B EXCEPT A.
  • Qui i NULL sono considerati uguali, a differenza di un normale confronto.

Esercitati