帶有樹形結構的部門層級關系表
-----------------------------------用CTE
WITH DeptTree(ParentDeptID, DeptID, DeptName, DeptLevel,Sort)
AS
(
SELECT PMIS_Department_Name as ParentDeptID,
autoid as DeptID,
PMIS_Department_Code as DeptName,
0 AS DeptLevel,
--根路徑
Cast(PMIS_Department_Code+'->' as varchar(max)) as Sort
FROM dbo.PMIS_Department
WHERE PMIS_Department_Name =0
UNION ALL
SELECT c.PMIS_Department_Name,
c.autoid,
c.PMIS_Department_Code,
p.DeptLevel + 1,
--子路徑=根路徑+孩子的DEP
Cast(p.Sort+c.PMIS_Department_Code+'->' as varchar(max))
FROM dbo.PMIS_Department c
INNER JOIN DeptTree p
ON c.PMIS_Department_Name = p.DeptID
)
SELECT ParentDeptID, DeptID, DeptName,replicate(' ',DeptLevel)+'|__'+DeptName as dep, DeptLevel,Sort
FROM DeptTree order by sort
----------------------用函式的指令碼
alter function dbo.GDS_TEST
(@root int,@maxlevels as int=null)
returns @Subs table( depid int,depName varchar(50),lvl int ,path varchar(max)
unique clustered(lvl,depid))
as
begin
declare @lvl int;
set @lvl=0
set @maxlevels=coalesce(@maxlevels,2147483647)
insert into @Subs(depid,depName,lvl,path)
select autoid,PMIS_Department_Code,@lvl,cast(PMIS_Department_Code as varchar(10))+'>' from dbo.PMIS_Department
where autoid=@root
while @@rowcount>0--當上一級別包含行
and @lvlbegin
select @lvl=@lvl+1 --遞增級別計數器
insert into @Subs(depid,depName,lvl,path)
select c.autoid,replicate(' ',@lvl)+'|__'+c.PMIS_Department_Code,@lvl,p.path+cast(c.PMIS_Department_Code as varchar(10))+'>'
from @Subs as p --父級
join dbo.PMIS_Department as c --子級
on p.lvl=@lvl-1 and c.PMIS_Department_Name=p.depid --從上一級篩選父親
end
return
end
select * from dbo.GDS_TEST(3,2)order by path
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7899089/viewspace-611048/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 部門層級關係表
- 03【若依框架解讀】Tree樹形結構的控制(選單,部門)框架
- 樹形結構
- Android 多級樹形結構顯示Android
- 如何在 Laravel 中去構建部門樹形結構 APILaravelAPI
- layui樹形結構UI
- java樹形結構Java
- MySQL多層級結構-樹搜尋介紹MySql
- 樹形結構的選單表設計與查詢
- JS 將有父子關係的陣列轉換成樹形結構資料JS陣列
- js將有父子關係的資料轉換成樹形結構資料JS
- 樹形結構處理
- 樹形或級聯關係
- LayUI—tree樹形結構的使用UI
- 工具函式:普通陣列如何轉為樹形結構資料(多層級)陣列?函式陣列
- 七、基本資料結構(樹形結構)資料結構
- B樹索引的內部結構索引
- markdown樹形結構生成工具
- php tree類的使用(樹形結構)PHP
- [Swing]樹形結構的實現
- 一個簡單的樹形結構
- 樹形結構資料儲存方案(三):閉包表
- 資料結構中樹形結構簡介資料結構
- MySql樹形結構(多級選單)查詢設計方案MySql
- Linux 下樹形結構的檢視Linux
- 樹形結構的儲存與查詢
- Oracle 樹形結構查詢的特殊用法Oracle
- 再談網站自動生成系統中的樹形結構網站
- CSS 頂部帶有三角形的矩形CSS
- 關於SQLServer2005的學習筆記——樹形結構SQLServer筆記
- Linux用樹形結構顯示目錄結構Linux
- 字串陣列轉為樹形結構字串陣列
- 【專案問題總結】5:樹形結構節點的級聯刪除邏輯
- 我做的一個挺拙劣樹形結構
- 樹形結構的處理——組合模式(五)模式
- 樹形結構的處理——組合模式(四)模式
- 樹形結構的處理——組合模式(三)模式
- 樹形結構的處理——組合模式(二)模式