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);
可以执行,但是有一个无限循环,表的最后一个记录号有一个无限循环。
===》
那是因为你的递归没有出口。