Leçon 4 / 9 — Chapitre 7: CTE récursive et structures avancées
Calculer un niveau de profondeur
La colonne niveau, calculée par la CTE récursive (h.niveau + 1 à chaque tour), sert souvent à afficher une hiérarchie de façon lisible — par exemple en l'indentant, comme un sommaire.
WITH RECURSIVE hierarchie AS (
SELECT id, nom, parent_id, 0 AS niveau
FROM categories WHERE parent_id IS NULL
UNION ALL
SELECT c.id, c.nom, c.parent_id, h.niveau + 1
FROM categories c
JOIN hierarchie h ON c.parent_id = h.id
)
SELECT LPAD('', niveau * 2, ' ') || nom AS nom_indente
FROM hierarchie;
LPAD('', niveau * 2, ' ') (vue au chapitre 1) génère un nombre d'espaces proportionnel au niveau : 0 espace au niveau 0, 2 au niveau 1, 4 au niveau 2. Pour 'Ordinateurs portables' (niveau 2) : 4 espaces, puis le nom — ' Ordinateurs portables'.
À retenir :
- Le niveau calculé par une CTE récursive peut alimenter n'importe quel affichage dépendant de la profondeur, pas seulement un simple compteur.
- Combiner
LPADet le niveau reproduit une indentation visuelle de hiérarchie, comme un sommaire ou une arborescence de fichiers.
À vous de jouer : combien d'espaces LPAD('', niveau * 2, ' ') produit-il pour une catégorie de niveau 1 ?
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