【发布时间】:2017-09-28 03:22:30
【问题描述】:
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');
“员工”表上方包含员工和员工的经理姓名。尝试使用以下函数检索员工的逗号分隔层次结构时,结果始终为空。
例如:
员工'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 Employee=@employeeName;
Set @commaSeparatedHierarchy=dbo.EmployeeHierarchy(@manager)+','+@manager;
End
return @commaSeparatedHierarchy;
End;
【问题讨论】:
-
测试数据加1
标签: sql sql-server recursion user-defined-functions