在現實世界中,有很多現象存在層次結構,比如,公司的人事職稱是典型的層次結果,如下圖
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLi0zaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLwkzX39GZhh2csATMflHLwEzX4xSZz91ZsADMx8FdsYkRGZkRG9lcvx2bjxSa2EWNhJTW1AlUxEFeVRUUfRHelRHL2EzXlpXazxyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3PnVGcq5SYxMWM3YjM1QmYjFjNjZGM0kDZ5ImNkR2MmRmY5UTNl9CX0EzLchDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL4M3Lc9CX6MHc0RHaiojIsJye.jpeg)
SQL Server是關系型DB,适合存儲二維關系的資料,如何存儲具有層次結構的資料了?需要使用一個字段ParentID表示上級ID,示例表結構如下
插入示例資料
使用CTE遞歸查詢M1手下的所有員工,包括Leader和Employee
檢視每一行資料的Path,便于檢視歸屬關系,path是使用ID來界定的
在現實世界中,有很多現象存在層次結構,比如,公司的人事職稱是典型的層次結果,如下圖
SQL Server是關系型DB,适合存儲二維關系的資料,如何存儲具有層次結構的資料了?需要使用一個字段ParentID表示上級ID,示例表結構如下
插入示例資料
使用CTE遞歸查詢M1手下的所有員工,包括Leader和Employee
檢視每一行資料的Path,便于檢視歸屬關系,path是使用ID來界定的