Analizza l’albero genealogico

Query gerarchiche e ricorsive in SQL Server

Jasmin Ludolf

Content Developer

L’albero genealogico

Il familyTree è descritto da:

  • ID della persona
  • Name della persona
  • parentID l’ID del genitore

Elementi che descrivono la gerarchia:

  • ID
  • parentID

Immagine di un albero genealogico

Query gerarchiche e ricorsive in SQL Server

Mettiamo tutto insieme

Ricorda questi principi sui CTE ricorsivi:

  • Inizializza la ricorsione nell’anchor member
  • Implementa la funzione ricorsiva nel recursion member
  • Definisci una condizione di terminazione

Ricorda anche questi principi operativi:

  • Ottieni il livello di ricorsione
  • Combina la funzione ricorsiva in un unico campo
Query gerarchiche e ricorsive in SQL Server

Domande sull’albero genealogico

Ottieni il numero di generazioni

  • Definisci LEVEL

    -- Anchor member
    0 as LEVEL
    -- Recursive member
    LEVEL + 1
    
  • Conta i livelli per ottenere le generazioni COUNT(LEVEL)

Generazioni:
100
Query gerarchiche e ricorsive in SQL Server

Domande sull’albero genealogico

Ottieni tutti i possibili genitori in un unico campo

  • Combina i risultati della ricorsione in un unico campo
    -- 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   |
+---------------------------------------------+
Query gerarchiche e ricorsive in SQL Server

Controlliamo l’albero genealogico!

Query gerarchiche e ricorsive in SQL Server

Preparing Video For Download...