我有一个典型的员工自我参考表。

如何构建 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
)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top