Giải bài toán đệ quy

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

Jasmin Ludolf

Content Developer

Hai bài toán

  1. Đếm số bằng đệ quy
  2. Tính tổng lũy thừa

Thành phần

  • Bước khởi tạo
  • Bước đệ quy

Giả mã:

  • Mô tả nguyên lý hoạt động ở mức cao, không chính thức
  • Dành cho con người đọc, không phải máy đọc

Bảng đen toán học

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

Đếm số

Định nghĩa đệ quy:

number = 1 khi iteration = 1,
number = number + 1 khi iteration > 1
điều kiện dừng: number < 4

Giả mã:

WITH recursion AS ( 
    SELECT
          -- Initial query
       number = 1
    UNION ALL 
    SELECT
        -- Recursive query
       number = number + 1
    FROM numbers 
    -- Termination condition
    WHERE number < 4)
-- Statement on CTE 
SELECT * FROM recursion;
-- Final iteration
1+1+1+1 = 4
Truy vấn phân cấp và đệ quy trong SQL Server

Tổng lũy thừa

Định nghĩa đệ quy:

number = 1 khi iteration = 1
number = number + iteration^iteration khi iteration > 1

Giả mã

WITH recursion AS (
      number = 1 -- Initial query
      UNION ALL
    number = number + iteration^iteration -- Recursive query
    WHERE termination_condition)
SELECT * FROM recursion;
-- Ba vòng lặp
1 + 2^2 + 3^3 = 32
Truy vấn phân cấp và đệ quy trong SQL Server

Cùng luyện tập!

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

Preparing Video For Download...