Createfunction Mag_manageTypeSort(@idint) returnsvarchar(max) as begin declare@pidint declare@returnvarchar(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
查询时调用function排序
select ID,case pid when0then name when1then''+name endas name from Mag_manageType orderby dbo.Mag_manageTypeSort(id)