SQL 递归枚举子树
示例
WITH RECURSIVE ManagedByJames(Level, ID, FName, LName) AS ( -- start with this row SELECT 1, ID, FName, LName FROM Employees WHERE ID = 1 UNION ALL -- get employees that have any of the previously selected rows as manager SELECTManagedByJames.Level+ 1, Employees.ID, Employees.FName, Employees.LName FROM Employees JOIN ManagedByJames ONEmployees.ManagerID= ManagedByJames.ID ORDER BY 1 DESC -- depth-first search ) SELECT * FROM ManagedByJames;