SQL Server 遞歸自連線:導覽分層資料
SQL Server 的遞歸自連線提供了一種遍歷分層資料結構的強大方法。這在處理單一表中的父子關係時尤其有價值。
考慮一個包含以下列的 Categories
表格:
Id
Name
ParentId
遞歸自連結讓我們可以提取該表內的層次關係,包括巢狀類別層級。
範例:
想像一下這個類別層次結構:
<code>- Business Laptops - Gaming Laptops - Ultrabooks - Compact Ultrabooks</code>
要使用遞迴公用表格運算式 (CTE) 來擷取「商用筆記型電腦」及其父類別,我們可以使用下列查詢:
<code class="language-sql">;WITH CTE AS ( SELECT id, name, name AS path, parent_id FROM Categories WHERE parent_id IS NULL UNION ALL SELECT t.id, t.name, CAST(cte.path + ',' + t.name AS VARCHAR(100)), t.parent_id FROM Categories t INNER JOIN CTE ON t.parent_id = CTE.id ) SELECT id, name, path FROM CTE WHERE name = 'Business Laptops';</code>
此查詢的輸出將是:
<code>id name path 1 Business Laptops Business Laptops</code>
遞歸自連接提供了一種有效的方法來管理和檢索複雜層次結構中的數據,跨多個層級存取相關資訊。
以上是SQL Server 中的遞歸自連線如何擷取分層資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!