PaliSkill
SQL Intermédiaire

Leçon 4 / 9 — Chapitre 4: CTE et opérateurs ensemblistes

EXCEPT : la différence entre deux requêtes

EXCEPT combine deux requêtes SELECT en gardant les lignes de la première qui n'apparaissent pas dans la seconde — une différence ensembliste. Certains moteurs (Oracle, notamment) utilisent le mot-clé MINUS pour la même opération.

SELECT nom FROM produits WHERE categorie = 'hygiene'
EXCEPT
SELECT nom FROM produits WHERE prix >= 500;

La première requête renvoie Savon et Dentifrice. La seconde renvoie Cahier, Jus et Dentifrice. EXCEPT garde les lignes de la première qui ne sont pas dans la seconde : Dentifrice est retiré (il apparaît dans les deux), il ne reste que Savon — 1 ligne.

L'ordre des deux requêtes compte, contrairement à UNION et INTERSECT : EXCEPT n'est pas symétrique. Inverser les deux requêtes de cet exemple donnerait un résultat différent (les produits chers hors hygiène, donc Cahier et Jus).

À retenir :

  • requete1 EXCEPT requete2; garde les lignes de la première requête absentes de la seconde.
  • MINUS est le nom utilisé par certains moteurs (Oracle) pour la même opération qu'EXCEPT.
  • Contrairement à UNION et INTERSECT, l'ordre des deux requêtes change le résultat d'EXCEPT.

À vous de jouer : inversez l'ordre des deux requêtes de cet exemple (categorie hygiene en second) et déterminez le nouveau résultat.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 80 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès