Create Table Employees
(
Employee varchar(10),
Manager varchar(10)
);
Insert into Employees
values
('Charlie',null),
('Peter','James'),
('Elai',null),
('Graham','Emanuel'),
('Amanda','Charlie'),
('Sen','Graham'),
('Emanuel',null),
('James','Amanda'),
('Elai',null),
('Victor','Elai');
上面的“Employees”表包含员工和员工的经理姓名。当试图使用下面的函数检索雇员的逗号分隔层次结构时,结果始终为空。SQL递归udf总是返回null
例如:
雇员'Victor'
,层次/结果应该是"Victor, Elai"
。
任何人都可以指出我在UDF下面做错了什么。
Create Function EmployeeHierarchy(@employeeName varchar(20))
Returns varchar(100)
AS
Begin
Declare @commaSeparatedHierarchy varchar(100);
Declare @manager varchar(20);
if(@employeeName is not null)
Begin
Select @manager=Manager from Employees where [email protected];
Set @commaSeparatedHierarchy=dbo.EmployeeHierarchy(@manager)+','[email protected];
End
return @commaSeparatedHierarchy;
End;
加1为测试数据 – TheGameiswar