樹形結構取得所有子父結點函式

2021-04-12 14:00:31 字數 1360 閱讀 4762

/*取得子結點*/

create function fn_getson(@parentid int)

returns @temptab table(id int,level int)

asbegin

declare @level int

set @level=1

insert into @temptab(id,level) values(@parentid,@level)

while @@rowcount>0

begin

set @level=@level+1

insert @temptab select a.id,@level

from organise a,@temptab b

where a.parentid=b.id

and b.level=@level-1

endreturn

endgo

/*取得父結點*/

create function fn_getpar(@sonid int)

returns @temptab table(id int,level int)

asbegin

declare @level int

set @level=1

insert into @temptab(id,level) values(@sonid,@level)

while @@rowcount>0

begin

set @level=@level+1

insert @temptab select a.parentid,@level

from organise a,@temptab b

where a.id=b.id

and b.level=@level-1

endreturn

endgo

declare @ta table(單位id int,  單位名稱 varchar(5), parentid int)

insert @ta select 1,        'aaa',         0

insert @ta select 2,        'bbb',         1

insert @ta select 3,        'ccc',         1

insert @ta select 4,        'ddd',         1

insert @ta select 5,        'eee',         2

insert @ta select 6,        'eee',         5

select space(parentid*5)+單位名稱 from @ta

go

MySQL遞迴查詢所有子節點,樹形結構查詢

delimiter drop procedure if exists findlchild iid 遞迴父節點 layer 允許遞迴深度 create procedure findlchild iid bigint 20 layer bigint 20 begin 建立接受查詢的臨時表 create...

mysql樹形結構查詢子節點

需求 在樹形的節點關係下,比如選單樹或者檔案目錄樹,要想獲取某個節點的所有子節點,或者所有父類節點,在知道節點樹最大層級的情況下,可以直接通過一條sql直接查詢實現 表結構 id,parent id eg 已知節點樹深度不超過10,查詢id 100010的節點的所有子節點 select org.id...

根據XML檔案父節點的屬性值取得所有子節點

1 xml version 1.0 2 root 3 nodes name 操作型別 4 node value 1 增加 node 5 node value 2 刪除 node 6 node value 3 修改 node 7 node value 4 啟用 node 8 node value 5 ...

bom結構,查詢節點下所有子節點

bom結構,查詢節點下所有子節點 create table os id int,parentid int,desn varchar 10 insert into os select 1,0,體育用品 insert into os select 2,0,戶外運動 insert into os sele...

用DTree實現對所有樹形結構的增刪改查

不管是組織機構,還是功能路徑,都是樹形結構的展示效果,用ajax技術通過dtree來實現對所有樹形結構物件的增刪改查 思路 1遍歷樹 看dtree的js結構,模仿這個結構從後臺通過拼接string的形式拼出來,當然拼的時候肯定是動態的從資料庫取的,資料庫表要保證有id和pid這兩個基本欄位,將這個封...