--測試資料
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 a.*
from @t a,@t_level b
where a.id=b.id
order by b.sort
/*--結果
id pid name
------ --------- ----------
001 null 山東省
002 001 煙台市
004 002 招遠市
003 001 青島市
005 null 四會市
006 005 清遠市
007 006 小分市
--*/
樹形資料深度排序處理示例 遞迴法 sql
測試資料 create table tb id char 3 pid char 3 name nvarchar 10 insert tb select 001 null 山東省 union all select 002 001 煙台市 union all select 004 002 招遠市 uni...
樹形資料廣度排序處理示例 sql
測試資料 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 招遠市 unio...
樹形資料查詢示例
參考 樹形資料查詢示例 示例資料 create table tb id int identity 1,1 pid int,name varchar 20 insert tb select 0,中國 union all select 0,美國 union all select 0,加拿大 union ...