
------解决思路----------------------
;WITH CTE AS(不知道你能看懂不
SELECT ROW_NUMBER()OVER(ORDER BY GETDATE())RN
,起点点号,连接方向
,CAST(起点点号+'->'+连接方向 AS VARCHAR(MAX)) [Result]
,1 DEEP
FROM TB T1
WHERE NOT EXISTS(SELECT 1 FROM TB T2 WHERE T1.起点点号=T2.连接方向)
UNION ALL
SELECT T1.RN
,T1.起点点号,T2.连接方向
,T1.[Result]+'->'+T2.连接方向
,T1.DEEP+1
FROM CTE T1
JOIN TB T2 ON T1.连接方向=T2.起点点号
)
SELECT * FROM CTE T1
WHERE NOT EXISTS(SELECT 1 FROM CTE T2 WHERE T1.RN=T2.RN AND T1.DEEP<T2.DEEP)