解决递归数学问题

SQL Server 中的分层与递归查询

Jasmin Ludolf

Content Developer

两个数学问题

  1. 递归计数
  2. 计算幂的和

组成部分

  • 初始化步骤
  • 递归步骤

伪代码:

  • 面向人类阅读的高层描述
  • 用于说明原理,而非机器执行

数学黑板

SQL Server 中的分层与递归查询

计数

递归定义:

iteration = 1 时 number = 1,
iteration > 1 时 number = number + 1
终止条件:number < 4

伪代码:

WITH recursion AS ( 
    SELECT
          -- 初始查询
       number = 1
    UNION ALL 
    SELECT
        -- 递归查询
       number = number + 1
    FROM numbers 
    -- 终止条件
    WHERE number < 4)
-- 对 CTE 的查询 
SELECT * FROM recursion;
-- 最终迭代
1+1+1+1 = 4
SQL Server 中的分层与递归查询

幂的和

递归定义:

iteration = 1 时 number = 1
iteration > 1 时 number = number + iteration^iteration

伪代码

WITH recursion AS (
      number = 1 -- 初始查询
      UNION ALL
    number = number + iteration^iteration -- 递归查询
    WHERE termination_condition)
SELECT * FROM recursion;
-- 三次迭代
1 + 2^2 + 3^3 = 32
SQL Server 中的分层与递归查询

¡Vamos a practicar!

SQL Server 中的分层与递归查询

Preparing Video For Download...