這個樹狀圖通常都是在前端用程式碼跑回圈顯示
那今天如果我們要單純在資料庫顯示樹狀圖,應該都是使用WITH遞迴生成
由於習慣用AI工具產生程式碼,加快工作,所以這個樹狀圖我照例用AI生成SQL給我
那各位覺得你的WITH寫法如何呢?
測設範例
drop table if exists #Tmp
create table #Tmp(
ID int
,ParentID int
,Name nvarchar(50)
,Sequence int
)
insert into #Tmp
values('1',null,'網站系統管理','1')
,('2','1','系統參數','1')
,('3','2','單位名稱設定','1')
,('4','2','簽核流程設定','2')
,('5','4','角色流程','1')
,('6','4','職務流程','2')
,('7','4','特定流程','2')
,('8',null,'人事系統管理','2')
,('9','8','人事管理','1')
,('10','9','員工資料管理','1')
,('11','9','員工家屬管理','2')
,('12','9','員工加退保管理','3')
,('13','1','系統權限設定','2')
,('15','1','考勤檢查程式','3')
,('16','8','差勤管理','2')
,('17','16','加班申請','1')
,('18','16','請假申請','2')
,('19','16','補卡申請','3')
,('20','8','報表管理','3')
,('21','20','出勤月統計報表','1')
,('22','20','請假月統計報表','2')
;WITH Tree AS (
....略(先隱藏)
)