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 l'attestation finale.
8 500 XOF / 12,96 € / 14,12 $
Débloquez les 87 leçons restantes de ce module
Pour vous communiquer où envoyer le paiement.
Moyen de paiement souhaité
Nous vous contactons pour le paiement — activé dès réception.