Aile ağacını analiz edin

SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Jasmin Ludolf

Content Developer

Aile ağacı

familyTree şu şekilde tanımlanır:

  • Kişinin ID’si
  • Kişinin Name’i
  • parentID ebeveynin kimliği

Hiyerarşiyi tanımlayan öğeler:

  • ID
  • parentID

Bir aile ağacı resmi

SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Hepsini birleştirme

Özyinelemeli CTE’ler için şu ilkeleri anımsayın:

  • Özyinelemeyi anchor üyesinde başlatın
  • Özyineleme işlevini recursive üyede uygulayın
  • Bir bitiş koşulu tanımlayın

Çalışma ilkeleri:

  • Özyineleme düzeyini alın
  • Özyineleme sonucunu tek bir alanda birleştirin
SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Aile ağacıyla ilgili sorular

Nesil sayısını alın

  • LEVEL tanımlayın

    -- Anchor member
    0 as LEVEL
    -- Recursive member
    LEVEL + 1
    
  • Nesilleri bulmak için LEVEL sayısını sayın COUNT(LEVEL)

Nesiller:
100
SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Aile ağacıyla ilgili sorular

Tüm olası ebeveynleri tek bir alanda alın

  • Özyineleme sonuçlarını tek alanda birleştirin
    -- 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   |
+---------------------------------------------+
SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Aile ağacını kontrol edelim!

SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

Preparing Video For Download...