我有一张桌子
id name parentid
----------------
1 a 0
2 b 1
3 c 2
4 d 1
现在我想用
计算等级我正在使用SQL Server 2005 Express
答案 0 :(得分:1)
你必须使用sql递归查询可能会对你有所帮助http://msdn.microsoft.com/en-us/library/ms186243(v=sql.105).aspx
答案 1 :(得分:0)
这应该可以完成这项工作:只需跳到父级,直到达到顶部并计算迭代次数。
create function dbo.CalcLevel (@ID int)
returns int
as
begin
declare @level int=0
while @ID != 0 begin
select @ID=parentID from MyTable where ID=@ID
set @level = @level + 1
if (@level = 1000) set @ID = 0 -- compensate endless loop
end
return @level
end