我有2個表,第一個包含文檔的數據,第二個包含目錄。SQL Server CTE - 遞歸
表1
DocID DirID Name Order
----- ----- ---- -----
1 4 Doc1 2
2 1 Doc2 1
3 5 Doc3 1
4 3 Doc4 1
5 4 Doc5 1
表2
DirID ParentID Name
----- -------- ----
1 NULL root
2 1 Dir1
3 2 Dir2
4 1 Dir3
5 3 Dir4
結構
root
-Dir1
-Dir2
-Dir4
-Doc3
-Doc4
-Dir3
-Doc5
-Doc1
-Doc2
我想在T-SQL創建CTE,這會產生這樣的結果,但我無法弄清楚如何去做。有人可以提出一個解決方案嗎?
Doc2
Dir3/Doc5
Dir3/Doc1
Dir1/Dir2/Doc4
Dir1/Dir2/Dir4/Doc3
根未顯示,文檔由Order
其目錄內排序,結果由全路徑的名稱排序最低的深度排序。
顯示你查詢,你試過了什麼? – Fabio
請注意'order'列名是一個[保留字](https://msdn.microsoft.com/en-us/library/ms189822.aspx)注意語法 – xQbert
我相信** Doc4 **的輸出是錯誤的:'Dir1/Dir2/Doc4'。它應該是邏輯上的「Dir1/Doc4」。 – FutbolFan