sql递归查询代码(cte应用)

发布时间:2020-12-07编辑:脚本学堂
sql递归查询代码(cte应用),供大家学习参考。使用了with Cte技术。

SQL递归查询代码(cte应用),供大家学习参考。

使用了with Cte技术。

复制代码 代码示例:

--非指定结点
WITH   temp(ID,   EmpName,   ParentID,   Level)
AS (
 SELECT   d.id,   d.EmpName,   d.parentid,   0   AS   Level
 FROM   dbo.CTETest   AS   d
  WHERE   d.parentid   IS   NULL
--上面这个查询是初始化用的,所以只需要查询最顶一层的结点
 UNION   ALL
 SELECT   d.id,   d.EmpName,   d.parentid,   Level   +   1
 FROM   dbo.CTETest   d
   JOIN     temp   AS   childD 
   ON   d.parentID   =   childD.id
   --上面这个查询才是用来递归的,它与CTE上一次的结果JOIN,得到上一次结果的子层结点
)
SELECT ID,EmpName,parentID,Level FROM temp where   id   =   xxx

网上找的例子,正确性未测试,请朋友们实测吧。