如何利用SQL Server With As遞迴獲取層級關係資料
阿新 • • 發佈:2019-02-17
如果已知當前使用者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