SELECT*INTO t --载入测试数据 FROM ( SELECT1AS ID,\'food\'AS Product,0AS ParentID UNIONALL SELECT2,\'sport\',0UNIONALL SELECT3,\'drink\',1UNIONALL SELECT4,\'ball\',2UNIONALL SELECT5,\'fruit\',1UNIONALL SELECT6,\'apple\',5UNIONALL SELECT7,\'banana\',5UNIONALL SELECT8,\'football\',4UNIONALL SELECT9,\'basketball\',4UNIONALL SELECT10,\'peisi\',3UNIONALL SELECT11,\'wohaha\',3 ) AS a GO WITH ShowTree(ID,Product,ORDERBY) AS ( SELECT ID,Product,ID FROM t WHERE ParentID=0--固定成员 UNIONALL SELECT t.ID,t.Product,ORDERBY*100+t.ID FROM ShowTree AS s INNERJOIN t ON s.ID = t.ParentID ) SELECT*FROM ShowTree ORDERBYCAST(ORDERBY ASVARCHAR(50))--OPTION(MAXRECURSION 1) DROPTABLE t