解遞迴數學問題

SQL Server 的階層式與遞迴查詢

Jasmin Ludolf

Content Developer

兩個數學問題

  1. 遞迴計數
  2. 計算冪次和

組成

  • 初始化步驟
  • 遞迴步驟

虛擬碼:

  • 以非正式、高層次方式描述運作原理
  • 供人閱讀,而非機器閱讀

數學黑板

SQL Server 的階層式與遞迴查詢

計數

遞迴定義:

number = 1 for iteration = 1,
number = number +1 for iteration > 1
termination condition: number < 4

虛擬碼:

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
SQL Server 的階層式與遞迴查詢

冪次和

遞迴定義:

number = 1 for iteration = 1
number = number + iteration^iteration for iteration > 1

虛擬碼

WITH recursion AS (
      number = 1 -- Initial query
      UNION ALL
    number = number + iteration^iteration -- Recursive query
    WHERE termination_condition)
SELECT * FROM recursion;
-- Three iterations
1 + 2^2 + 3^3 = 32
SQL Server 的階層式與遞迴查詢

一起來練習吧!

SQL Server 的階層式與遞迴查詢

Preparing Video For Download...