sqlserver 树结构递归(向上递归和向下递归)


--获取当前及以下部门
Create proc GetCurrentAndUnderOrg
@orgId int
as
begin
    WITH cte 
    AS
    (
        SELECT * ,0 AS level FROM Static_Organ  WHERE OrganID=@orgId
        UNION ALL
        SELECT g.*,level+1 FROM Static_Organ g INNER JOIN cte 
             ON g.ParentOrgan=cte.OrganID
    )
    SELECT * FROM cte
end

  

 --向上递归
   WITH cte 
    AS
    (
        SELECT * ,LevelIndex AS level FROM EL_Departments  WHERE ID=170
        UNION ALL
        SELECT g.*,g.LevelIndex AS level FROM EL_Departments g INNER JOIN cte 
             ON g.Id=cte.ParentId
    )

  向上递归和向下递归,其实就是反一反。以上语句因为要用到with as ,所以数据库要sqlserver2005以上。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM