SQL Server With As 递归获取层级关系数据

如果已知当前用户ID我要想知道他的上级领导有哪些,可编写sql语句如下

WITH    Emp
          AS ( SELECT   ID ,
                        EName ,
                        ParentGUID
               FROM     dbo.Employee
               WHERE    ID = '5C8214EC-258B-4C44-9F31-206E499F0285'
               UNION ALL  
               SELECT   d.ID ,
                        d.EName ,
                        d.ParentGUID
               FROM     Emp
                        INNER JOIN dbo.Employee d ON d.ID = Emp.ParentGUID
             )
    SELECT ID,EName
    FROM    Emp

 相反,如果已知当前用户ID,怎么获取他的下级呢,编写sql语句如下

WITH    Emp
          AS ( SELECT   ID ,
                        EName ,
                        ParentGUID
               FROM     dbo.Employee
               WHERE    ID = '0CD19311-2CA1-4120-9554-11BFD8219AF9'
               UNION ALL  
               SELECT   d.ID ,
                        d.EName ,
                        d.ParentGUID
               FROM     Emp
                        INNER JOIN dbo.Employee d ON d.ParentGUID = Emp.ID
             )
    SELECT ID,EName
    FROM    Emp

 

posted @ 2017-10-17 17:31  半透明。  阅读(203)  评论(0)    收藏  举报