【问题标题】:SQL Server 2005 UDF to make a table data-type of self referencing table dataSQL Server 2005 UDF 制作自引用表数据的表数据类型
【发布时间】:2011-05-19 20:46:44
【问题描述】:
我有一个典型的员工自引用表。
如何构建 UDF 以返回可用于其他查询以加入的表数据类型,以便我将表中用户的 id 传递给 UDF 并获得该用户 @ 的结果987654322@ 和所有通过managerId 链接到他的用户?
我的桌子是EmployeeId, ManagerID, Name....
我只需要传递一个EmployeeId 并获得所有记录的递归结果,其中ManagerID 是传入参数的ID,以及任何将这些记录作为经理的记录,等等。 .
谢谢
【问题讨论】:
标签:
sql
sql-server-2005
recursion
user-defined-types
【解决方案1】:
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
)