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.

Pratiquer