PaliSkill
SQL Intermédiaire

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 :

  1. Réutilisation : la même logique intermédiaire est utilisée plusieurs fois dans la requête (vu à la leçon précédente).
  2. É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.
  3. Récursivité : les CTE peuvent s'appeler elles-mêmes (CTE récursive), ce qu'une sous-requête en FROM ne 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 FROM et 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