INTERSECT et EXCEPT
Combiner les résultats de deux requêtes : garder les lignes présentes dans les deux (INTERSECT) ou seulement dans la première (EXCEPT).
Syntaxe
query1 INTERSECT query2;query1 EXCEPT query2;
- Les deux requêtes doivent avoir le même nombre de colonnes, avec des types compatibles.
- Les deux suppriment les doublons. Ajoutez ALL pour les conserver. Oracle appelle EXCEPT MINUS.
Exemple
SELECT city FROM customers EXCEPT SELECT 'Paris' ORDER BY city;
Chaque ville de client, sauf Paris.
Tables utilisées : customers. Essayez-le dans une leçon ci-dessous.
Erreurs courantes
- EXCEPT n'est pas symétrique : A EXCEPT B est différent de B EXCEPT A.
- Ici, les NULL sont considérés comme égaux, contrairement à une comparaison classique.