測試資料
declare @t table(id char(3),pid char(3),name nvarchar(10))
insert @t select '001',null ,'山東省'
union all select '002','001','煙台市'
union all select '004','002','招遠市'
union all select '003','001','青島市'
union all select '005',null ,'四會市'
union all select '006','005','清遠市'
union all select '007','006','小分市'
--深度排序顯示處理
--生成每個節點的編碼累計(相同當單編號法的編碼)
declare @t_level table(id char(3),level int,sort varchar(8000))
declare @level int
set @level=0
insert @t_level select id,@level,id
from @t
where pid is null
while @@rowcount>0
begin
set @level=@level+1
insert @t_level select a.id,@level,b.sort+a.id
from @t a,@t_level b
where a.pid=b.id
and b.level=@level-1
end
--顯示結果
select space(b.level*2)+'|--'+a.name
from @t a,@t_level b
where a.id=b.id
order by b.sort
/*--結果
|--山東省
|--煙台市
|--招遠市
|--青島市
|--四會市
|--清遠市
|--小分市
--*/
資料庫儲存樹形結構的資料
最近接觸樹形結構資料非常的多,幾乎超過了過去8年多,開發所有系統的總和.本來嘛,一般的遞迴就可以解決了,可是這個系統中總是需要頻繁的訪問樹結點,及父結點,子結點,動不動就要遞迴,且樹的使用非常之多,做的多了搞的人都要嘔吐了,下面在網上找到幾篇比較有用的資料,記錄彙總一下.首先,資料庫不一定要用傳統的...
資料庫設計樹形結構的技巧
前言 當業務中遇到樹形結構時,比如選單,省市區,部門等時如何設計資料庫。一種設計可以通過每個字段帶有parent id 來遞迴獲取所有的節點 也可以通過另一種方法來獲取某個節點的子節點 使用level記錄當前節點的父節點code 新增乙個輔助的varchar欄位level,欄位的邏輯是多個部門的id...
級聯資料生成樹形結構
tree 結構 public class treenode public string gettitle public integer getparentid public void setparentid integer parentid public void settitle string t...