;WITH CTE AS(
SELECT TID,CAST(TName AS VARCHAR(8000))TName,CAST('' AS VARCHAR(8000))DEEP
,CAST(TID AS VARCHAR(8000))[PATH]
FROM TB WHERE ParentID=0
UNION ALL
SELECT T1.TID,T2.DEEP+'--'+T1.TName,T2.DEEP+'--'
,T2.[PATH]+'-'+CAST(T1.TID AS VARCHAR(8000))
FROM TB T1
JOIN CTE T2 ON T1.ParentID=T2.TID
)
SELECT TID,TName
FROM CTE
ORDER BY [PATH]你参考一下~