求一树型,逆向递归查询
AdminPart_Id      AdminPart_Name      AdminPart_UpId   
 6                     分站管理员                                             11 
 11               超级管理员                                                0 
 12               北京分站管理员                                    6 
 13               上海分站管理员                                    6 
 14               北京新闻频道管理员                        12 
 15               上海新闻频道管理员                           13   
 要求实现这样的查询      如果      我输入的是         6    
 那么结果为   
 11               超级管理员         0         
 如果输入的是      13    
 则结果为   
 11               超级管理员                                                0 
 6                     分站管理员                                             11 
 如果输入的是      15   
 则结果为      
 11               超级管理员                                                0       
 6                     分站管理员                                             11 
 13               上海分站管理员                                    6
------解决方案--------------------create table ta(AdminPart_Id int, AdminPart_Name varchar(50), AdminPart_UpId int) 
 insert into ta select 6,        '分站管理员 ',               11 
 union all select 11,      '超级管理员 ',                0 
 union all select 12,      '北京分站管理员 ',            6 
 union all select 13,      '上海分站管理员 ',            6 
 union all select 14,      '北京新闻频道管理员 ',        12 
 union all select 15,      '上海新闻频道管理员 ',         13   
 select * from ta where charindex( ', '+rtrim(AdminPart_Id)+ ', ',dbo.F_se(6))> 0   
 CREATE FUNCTION F_se  (@ID int) 
 RETURNS varchar(100) 
 AS 
 BEGIN 
    DECLARE @str varchar(100) 
 	set @str= ', '   
 	while(@id <> 0) 
 	select @id=AdminPart_UpId,@str=@str+rtrim(@id)+ ', ' from ta where AdminPart_Id=@id   
    RETURN(@str) 
 END
------解决方案------------------------创建测试数据 
 if object_id( 'tbTest ') is not null 
 drop table tbTest 
 if object_id( 'fnGetFather ') is not null 
 drop function fnGetFather 
 GO 
 create table tbTest(AdminPart_Id int,AdminPart_Name varchar(20),AdminPart_UpId int) 
 insert tbTest 
 select 6,       '分站管理员 ',               11 union all 
 select 11,      '超级管理员 ',                0 union all  
 select 12,      '北京分站管理员 ',            6 union all 
 select 13,      '上海分站管理员 ',            6 union all 
 select 14,      '