Analizați arborele genealogic

Interogări ierarhice și recursive în SQL Server

Jasmin Ludolf

Content Developer

Arborele genealogic

familyTree este descris prin:

  • ID al persoanei
  • Name al persoanei
  • parentID ID-ul părintelui

Elementele care descriu ierarhia:

  • ID
  • parentID

Imagine a unui arbore genealogic

Interogări ierarhice și recursive în SQL Server

Totul împreună

Rețineți principiile despre CTE-urile recursive:

  • Inițializați recursivitatea în membrul ancoră
  • Implementați funcția de recursivitate în membrul recursiv
  • Definiți o condiție de terminare

Rețineți principiile de funcționare:

  • Obțineți nivelul de recursivitate
  • Combinați funcția de recursivitate într-un singur câmp
Interogări ierarhice și recursive în SQL Server

Întrebări despre arborele genealogic

Obțineți numărul de generații

  • Definiți LEVEL

    -- Anchor member
    0 as LEVEL
    -- Recursive member
    LEVEL + 1
    
  • Numărați nivelurile pentru a obține generații COUNT(LEVEL)

Generations:
100
Interogări ierarhice și recursive în SQL Server

Întrebări despre arborele genealogic

Obțineți toți părinții posibili într-un singur câmp

  • Combinați rezultatele recursivității într-un singur câmp
    -- 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   |
+---------------------------------------------+
Interogări ierarhice și recursive în SQL Server

Să verificăm arborele genealogic!

Interogări ierarhice și recursive în SQL Server

Preparing Video For Download...