******请问,我希望得到这样的查询结果,Sql语句应该怎么写?******
数据库中是以无序的规则存储的数据 
 MenuID      ParentID      Name 
 10	000000	      F1 
 101010	1030	      F1F3F1 
 1010	10	      F1F1 
 1030	10	      F1F3 
 102010	1010	      F1F1F1 
 102020	1010	      F1F1F2 
 102020	1020	      F1F2F2 
 101030	1030	      F1F3F3 
 101020	1030	      F1F3F2 
 102010	1020	      F1F2F1 
 1020	10	      F1F2   
 我希望查询出的结果是这样排序的, 
 即按照:父节点,子节点1,子节点1的子节点,子节点2,子节点2的子节点: 
 注意:数据库中的Name部分不是像下面这样, 
 我这里只是举个例子 
 MenuID      ParentID      Name 
 10	000000	      F1 
 1010	10	      F1F1 
 102010	1010	      F1F1F1 
 102020	1010	      F1F1F2 
 1020	10	      F1F2 
 102010	1020	      F1F2F1 
 102020	1020	      F1F2F2 
 1030	10	      F1F3 
 101010	1030	      F1F3F1 
 101020	1030	      F1F3F2 
 101030	1030	      F1F3F3
------解决方案--------------------create table tab(MenuID varchar(10),ParentID varchar(10), Name varchar(10)) 
 insert tab 
 select  '10 ', '000000 ', 'F1 ' 
 union all select  '101010 ', '1030 ', 'F1F3F1 ' 
 union all select  '1010 ', '10 ', 'F1F1 ' 
 union all select  '1030 ', '10 ', 'F1F3 ' 
 union all select  '102010 ', '1010 ', 'F1F1F1 ' 
 union all select  '102020 ', '1010 ', 'F1F1F2 ' 
 union all select  '102020 ', '1020 ', 'F1F2F2 ' 
 union all select  '101030 ', '1030 ', 'F1F3F3 ' 
 union all select  '101020 ', '1030 ', 'F1F3F2 ' 
 union all select  '102010 ', '1020 ', 'F1F2F1 ' 
 union all select  '1020 ', '10 ', 'F1F2 '   
 select * from tab order by left(MenuID+ '0000000000 ',20)   
 drop table tab   
 /*    结果     
 MenuID     ParentID   Name        
 ---------- ---------- ----------  
 10         000000     F1 
 1010       10         F1F1 
 101010     1030       F1F3F1 
 101020     1030       F1F3F2 
 101030     1030       F1F3F3 
 1020       10         F1F2 
 102010     1020       F1F2F1 
 102010     1010       F1F1F1 
 102020     1010       F1F1F2 
 102020     1020       F1F2F2 
 1030       10         F1F3   
 (11 row(s) affected)     
 */   
------解决方案--------------------这不就是深度排序么?
------解决方案----------------------测试数据 
 DECLARE @t TABLE(ID int,PID int,Name nvarchar(10)) 
 INSERT @t 
 select  '10 ', '000000 ', 'F1 ' union all 
 select  '101010 ', '1030 ', 'F1F3F1 ' union all 
 select  '1010 ', '10 ', 'F1F1 ' union all 
 select  '1030 ', '10 ', 'F1F3 ' union all 
 select  '102010 ', '1010 ', 'F1F1F1 ' union all 
 select  '102020 ', '1010 ', 'F1F1F2 ' union all 
 select  '102020 ', '1020 ', 'F1F2F2 ' union all 
 select  '101030 ', '1030 ', 'F1F3F3 ' union all 
 select  '101020 ', '1030 ', 'F1F3F2 ' union all 
 select  '102010 ', '1020 ', 'F1F2F1 ' union all 
 select  '1020 ', '10 ', 'F1F2 '   
 --深度排序显示处理 
 --生成每个节点的编码累计(相同当单编号法的编码)