Phân tích cây phả hệ

Truy vấn phân cấp và đệ quy trong SQL Server

Jasmin Ludolf

Content Developer

Cây phả hệ

familyTree được mô tả bởi:

  • ID của người đó
  • Name của người đó
  • parentID ID của cha/mẹ

Các phần tử mô tả thứ bậc:

  • ID
  • parentID

Hình cây phả hệ

Truy vấn phân cấp và đệ quy trong SQL Server

Tổng hợp lại

Ghi nhớ các nguyên tắc về CTE đệ quy:

  • Khởi tạo đệ quy ở phần neo (anchor)
  • Cài đặt hàm đệ quy ở phần đệ quy
  • Xác định điều kiện dừng

Nguyên tắc vận hành:

  • Lấy cấp độ đệ quy
  • Gộp kết quả đệ quy vào một trường
Truy vấn phân cấp và đệ quy trong SQL Server

Câu hỏi về cây phả hệ

Lấy số thế hệ

  • Định nghĩa LEVEL

    -- Anchor member
    0 as LEVEL
    -- Recursive member
    LEVEL + 1
    
  • Đếm số LEVEL để ra số thế hệ COUNT(LEVEL)

Generations:
100
Truy vấn phân cấp và đệ quy trong SQL Server

Câu hỏi về cây phả hệ

Gộp tất cả cha/mẹ vào một trường

  • Gộp kết quả đệ quy vào một trường
    -- 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   |
+---------------------------------------------+
Truy vấn phân cấp và đệ quy trong SQL Server

Hãy kiểm tra cây phả hệ!

Truy vấn phân cấp và đệ quy trong SQL Server

Preparing Video For Download...