Analyser l'arbre généalogique

Requêtes hiérarchiques et récursives dans SQL Server

Jasmin Ludolf

Content Developer

L'arbre généalogique

Le familyTree est décrit par :

  • ID de la personne
  • Name de la personne
  • parentID l'ID du parent

Éléments décrivant la hiérarchie :

  • ID
  • parentID

Image d'un arbre généalogique

Requêtes hiérarchiques et récursives dans SQL Server

Mettre le tout ensemble

Retenez ces principes pour les CTE récursifs :

  • Initialiser la récursion dans le membre d'ancrage
  • Implémenter la fonction récursive dans le membre récursif
  • Définir une condition d'arrêt

Rappelez-vous aussi ces principes pratiques :

  • Obtenir le niveau de récursion
  • Regrouper la fonction récursive dans un seul champ
Requêtes hiérarchiques et récursives dans SQL Server

Questions sur l'arbre généalogique

Obtenir le nombre de générations

  • Définir le LEVEL

    -- Anchor member
    0 as LEVEL
    -- Recursive member
    LEVEL + 1
    
  • Compter le nombre de niveaux pour obtenir les générations COUNT(LEVEL)

Generations:
100
Requêtes hiérarchiques et récursives dans SQL Server

Questions sur l'arbre généalogique

Réunir tous les parents possibles dans un seul champ

  • Combiner les résultats récursifs dans un seul champ
    -- Anchor member
    CAST(ID AS VARCHAR(MAX)) as Parent
    -- Recursive member
    Parent + ' -> ' + CAST(parentID AS VARCHAR(MAX))
    
+---------------------------------------------+
| Name            | Parent                    |
|-----------------|---------------------------|
|Dominik Egarter  | 100 -> 101 -> 102 ->103   |
+---------------------------------------------+
Requêtes hiérarchiques et récursives dans SQL Server

Vérifions l'arbre généalogique !

Requêtes hiérarchiques et récursives dans SQL Server

Preparing Video For Download...