有一个表结构如下:
员工ID 姓名 父ID
EmployeeId Name ParentEmpId
1 admin NULL
2 wwn 1
3 hanxi 1
4 w1 2
5 w2 2
6 w3 3
7 h1 4
8 h2 4
9 h3 4
....... 这样可以构成一个树形的组织结构图: admin
wwn hanxi
w1,w2,w3 h1,h2,h3现想求任一节点在树形中的深度,想了很久没有想出来~
员工ID 姓名 父ID
EmployeeId Name ParentEmpId
1 admin NULL
2 wwn 1
3 hanxi 1
4 w1 2
5 w2 2
6 w3 3
7 h1 4
8 h2 4
9 h3 4
....... 这样可以构成一个树形的组织结构图: admin
wwn hanxi
w1,w2,w3 h1,h2,h3现想求任一节点在树形中的深度,想了很久没有想出来~
或者从节点找父节点直到 ParentEmpId 为null !!
把次数输出!!
@employeeId int = null
as
begin
declare @layer int
Set @layer = 0 while @employeeId is not null
begin
set @employeeId = (select top(1) ParentEmpId from Employees where EmployeeId = @employeeId)
set @layer = @layer + 1
end select @layer
endexec getEmployeeLayer @employeeId = 5 --return 3