试下SQL2005 Common Table Expressions(CTE)递归

    已经有很多朋友分享过了,自己亲身操作过,随便记录下来是给自己备忘,以后用到时不用乱找。

    

    

WITH cet_depart
AS
(
    SELECT depart_id, depart_name FROM dbo.Depart
    WHERE depart_id = '004'    --入口
    UNION ALL    --递归时必要
    SELECT d.depart_id, d.depart_name FROM  depart d INNER JOIN cet_depart c
    ON CAST (c.depart_id AS INT) = d.upper_depart_id  --递归条件
)

SELECT * FROM cet_depart
OPTION (MAXRECURSION 20)    --最大递归次数

结果集:

原文地址:https://www.cnblogs.com/xiaoguanqiu/p/2812995.html