SQL CTE递归查询

首先,你在这里是为了OPTION (MAXRECURSION 2)来控制递归次数。

你能做到的。

-创建无限循环

用cte (EmployeeID,ManagerID,Title,lev)作为

SELECT雇员ID,经理ID,职务,级别=1

人力资源部的。雇员

其中ManagerID不为空

联合所有

选择cte。雇员ID。管理者ID,cte。标题,cte.lev+1

来自cte

加入人力资源。员工身份为e

在cte上。ManagerID = e.EmployeeID

其中cte.lev & lt三

)

-使用MAXRECURSION将递归级别限制为2

选择员工ID,经理ID,职位

来自cte

注意我这里多了个lev,递归的次数由lev的值控制。

2.选项(max recursion 0);

可以执行,但是有一个无限循环,表的最后一个记录号有一个无限循环。

===》

那是因为你的递归没有出口。