Analisis silsilah keluarga

Kueri Hierarkis dan Rekursif di SQL Server

Jasmin Ludolf

Content Developer

Silsilah keluarga

familyTree dijelaskan oleh:

  • ID orang tersebut
  • Name orang tersebut
  • parentID ID orang tua

Elemen yang menggambarkan hierarki:

  • ID
  • parentID

Gambar silsilah keluarga

Kueri Hierarkis dan Rekursif di SQL Server

Menggabungkan semuanya

Ingat prinsip CTE rekursif berikut:

  • Inisialisasi rekursi di anchor member
  • Implementasikan fungsi rekursi di recursion member
  • Tetapkan kondisi terminasi

Ingat prinsip kerja berikut:

  • Dapatkan level rekursi
  • Gabungkan fungsi rekursi dalam satu kolom
Kueri Hierarkis dan Rekursif di SQL Server

Pertanyaan tentang silsilah keluarga

Dapatkan jumlah generasi

  • Definisikan LEVEL

    -- Anchor member
    0 as LEVEL
    -- Recursive member
    LEVEL + 1
    
  • Hitung jumlah LEVEL untuk mendapatkan generasi COUNT(LEVEL)

Generasi:
100
Kueri Hierarkis dan Rekursif di SQL Server

Pertanyaan tentang silsilah keluarga

Dapatkan semua kemungkinan orang tua dalam satu kolom

  • Gabungkan hasil rekursi dalam satu kolom
    -- 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   |
+---------------------------------------------+
Kueri Hierarkis dan Rekursif di SQL Server

Ayo periksa silsilahnya!

Kueri Hierarkis dan Rekursif di SQL Server

Preparing Video For Download...