SQL Server 中的分层与递归查询
Jasmin Ludolf
Content Developer
组成部分
伪代码:

递归定义:
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
递归定义:
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 中的分层与递归查询