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