ID name pid
1 aaaa 0
2 bbbb 0
3 a111 1
4 a222 1
5 a333 1
6 cccc 0
想实现数据分类重排。
Create function Mag_manageTypeSort(@id int)
returns varchar(max)
as
begin
declare @pid int
declare @return varchar(max)
select @pid=@id
select @result=''
while @pid>=1
begin
select @result=rtrim(@pid)+' '+@result,@pid=PID from Mag_manageType
where id=@id
select @id=@pid
end
return @result
end
go
select ID,case pid when 0 then name when 1 then ' '+name end as name
from Mag_manageType
order by dbo.Mag_manageTypeSort(id)
即可得到一下数据。from Mag_manageType
order by dbo.Mag_manageTypeSort(id)
1 aaaa
3 1111
4 aaaa1
5 dd
2 bbbb
6 aaaaff