sql无限递归查询

矫情吗;* 2023-10-17 20:54 246阅读 0赞
  1. --------------所有子集数据包括自己---------------------
  2. CREATE PROCEDURE ALLSON
  3. @ID INT
  4. AS
  5. BEGIN
  6. WITH CTE AS
  7. (
  8. SELECT ID,PID,NAME,0 AS LVL FROM TEST1
  9. WHERE ID = @ID
  10. UNION ALL
  11. SELECT D.ID,D.PID,D.NAME,LVL+1 FROM CTE C INNER JOIN TEST1 D
  12. ON C.ID = D.PID
  13. )
  14. SELECT * FROM CTE
  15. END
  16. ------------------所有父级数据-------------------
  17. CREATE PROCEDURE ALLFATHER
  18. @ID INT
  19. AS
  20. BEGIN
  21. WITH CTE AS
  22. (
  23. SELECT ID,PID,NAME,0 AS LVL FROM TEST1
  24. WHERE ID = @ID
  25. UNION ALL
  26. SELECT D.ID,D.PID,D.NAME,LVL+1 FROM CTE C INNER JOIN TEST1 D
  27. ON C.PID = D.ID
  28. )
  29. SELECT * FROM CTE
  30. END
  31. --FATHER
  32. EXEC ALLFATHER 6

发表评论

表情:
评论列表 (有 0 条评论,246人围观)

还没有评论,来说两句吧...

相关阅读