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