SQL Server 2005 UDF制作自引用表数据的表数据类型
-
30-09-2019 - |
题
我有一个典型的员工自我参考表。
如何构建 UDF 来返回可在其他查询中使用的表数据类型以进行联接,以便我将 UDF 传递给 id
表中的用户并获取该用户的结果 id
以及通过以下方式链接到他的所有用户 managerId
?
我的桌子是 EmployeeId, ManagerID, Name
....
我所需要的只是通过 EmployeeId
并得到所有记录的递归结果 ManagerID
是传入参数的 id,以及任何将这些记录作为管理器的记录,等等......
谢谢
解决方案
CREATE FUNCTION GetEmployees
(
@EmployeeId int
)
RETURNS TABLE
AS
RETURN
(
WITH yourcte AS
(
SELECT EmployeeId, ManagerID, Name
FROM Employees
WHERE EmployeeId = @EmployeeId
UNION ALL
SELECT e.EmployeeId, e.ManagerID, e.Name
FROM Employees e
JOIN yourcte y ON e.ManagerID = y.EmployeeId
)
SELECT EmployeeId, ManagerID, Name
FROM yourcte
)
不隶属于 StackOverflow