以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- sql的cte递归查询如何标记叶级 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127419) |
-- 作者:happyft -- 发布时间:2018/11/13 18:41:00 -- sql的cte递归查询如何标记叶级 --用CTE更新递归各级子件 WITH CTE AS ( SELECT 产品编码, 父件编码, 0 AS Levle FROM BOM WHERE 父件编码 IS NULL UNION ALL SELECT BOM.产品编码, BOM.父件编码, c.Levle + 1 AS Levle FROM CTE AS c INNER JOIN BOM ON c.产品编码 = BOM.父件编码 WHERE Levle < 10 --限制最多10层 ) SELECT * FROM CTE 这样查询 如果是最后一级的要想标记出来,在上述的递归中要在哪里加上什么才能标记出来呢? 谢谢!
|
-- 作者:有点蓝 -- 发布时间:2018/11/13 20:16:00 -- 无法标记 |
-- 作者:HappyFt -- 发布时间:2018/11/14 10:26:00 -- 谢谢! 我目前是在最后再增加一个查询来实现 SELECT * FROM CTE WHERE EXISTS(SELECT * from bom WHERE bom.父件编码 = cte.产品编码) |