Leçon 8 / 9 — Chapitre 4: CTE et opérateurs ensemblistes
CTE ou sous-requête en FROM : quand choisir quoi ?
Pour un usage unique et simple, une sous-requête en FROM et une CTE produisent un résultat identique — le choix est alors surtout une question de goût et de lisibilité. Trois situations penchent nettement du côté de la CTE :
- Réutilisation : la même logique intermédiaire est utilisée plusieurs fois dans la requête (vu à la leçon précédente).
- Étapes chaînées : plusieurs calculs s'enchaînent, chacun s'appuyant sur le précédent — nommer chaque étape rend la requête bien plus facile à relire qu'une pile de sous-requêtes imbriquées.
- Récursivité : les CTE peuvent s'appeler elles-mêmes (CTE récursive), ce qu'une sous-requête en
FROMne sait pas faire du tout. Ce cas sort du périmètre de ce module — il mérite un traitement à part entière, plus avancé.
Pour un filtre ponctuel et simple, utilisé une seule fois, une sous-requête en FROM reste parfaitement légitime : ajouter un WITH ne serait alors qu'une couche syntaxique de plus, sans bénéfice réel.
À retenir :
- Sans réutilisation ni étapes chaînées, sous-requête en
FROMet CTE sont équivalentes : le choix est une question de lisibilité. - Une CTE référencée plusieurs fois, ou une suite de calculs nommés étape par étape, sont deux bonnes raisons de préférer
WITH. - Les CTE prennent en charge la récursivité, contrairement aux sous-requêtes en FROM — un sujet volontairement laissé de côté ici.
À vous de jouer : pour une requête qui utilise un même total intermédiaire trois fois, comptez combien de fois il faudrait le réécrire sans CTE, contre une seule fois avec.
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