Analysera familjeträdet

Hierarkiska och rekursiva frågor i SQL Server

Jasmin Ludolf

Content Developer

Familjeträdet

familyTree beskrivs av:

  • ID för personen
  • Name för personen
  • parentID förälderns ID

Elementen som beskriver hierarkin:

  • ID
  • parentID

Bild av ett familjeträd

Hierarkiska och rekursiva frågor i SQL Server

Allt på plats

Kom ihåg följande principer för rekursiva CTE:er:

  • Initiera rekursionen i ankarmedlemmen
  • Implementera rekursionsfunktionen i rekursionsmedlemmen
  • Definiera ett avslutningsvillkor

Kom ihåg följande arbetsprinciper:

  • Hämta rekursionsnivån
  • Kombinera rekursionsfunktionen i ett fält
Hierarkiska och rekursiva frågor i SQL Server

Frågor om familjeträdet

Hämta antalet generationer

  • Definiera LEVEL

    -- Anchor member
    0 as LEVEL
    -- Recursive member
    LEVEL + 1
    
  • Räkna antalet LEVELS för att få generationer COUNT(LEVEL)

Generations:
100
Hierarkiska och rekursiva frågor i SQL Server

Frågor om familjeträdet

Hämta alla möjliga föräldrar i ett fält

  • Kombinera rekursionsresultat i ett fält
    -- 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   |
+---------------------------------------------+
Hierarkiska och rekursiva frågor i SQL Server

Nu kör vi en övning!

Hierarkiska och rekursiva frågor i SQL Server

Preparing Video For Download...