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