Except in SQL
Nel linguaggio SQL l'operatore EXCEPT elenca i valori di una colonna senza i valori di un'altra colonna.
SELECT att1 FROM tab
EXCEPT
SELECT att2 FROM tab
Dove att1 e att2 sono gli attributi (colonne) mentre tab è la tabella.
Le colonne possono anche trovarsi in tabelle diverse.
Il risultato di EXCEPT è la differenza dei valori contenuti negli attributi att1 e att2.
Nota. Il numero degli attributi a sinistra e a destra dell'operatore EXCEPT deve essere uguale. Inoltre, il dominio dei dati deve essere compatibile. Gli attributi possono anche essere più di uno. Nel risultato finale il nome delle colonne è definito dal primo operando (att1). Per cambiarlo si può usare un alias.
L'operatore EXCEPT è uno degli operatori insiemistici del linguaggio SQL.
Di default la differenza elimina tutti i valori duplicati dal risultato finale.
Un esempio pratico
Ho una tabella Studenti
Voglio trovare le città di nascita in cui gli studenti non risiedono.
Per farlo utilizzo l'operatore EXCEPT
SELECT Nascita AS Città FROM Studenti
EXCEPT
SELECT Residenza From Studenti
Il risultato è l'elenco dei valori della prima colonna (Nascita) senza quelli in comune nella seconda colonna (Residenza).
Nota. Nella SELECT ho usato un alias (AS) nella prima selezione per cambiare il nome della colonna da Nascita a Città. In questo modo la colonna del risultato finale si chiama Città (e non Nascita).
E così via.