create function f_pid(@id char(3))
returns @t_level table(id char(3),level int)
asbegin
declare @level int
set @level=1
insert @t_level select @id,@level
while @@rowcount>0
begin
set @level=@level+1
insert @t_level select a.pid,@level
from tb a,@t_level b
where a.id=b.id
and b.level=@level-1
endreturn
endgo
--上面的使用者定義函式可以處理乙個節點有多個父節點的情況,對於標準的樹形資料而言,由於每個節點僅有乙個父節點,所以也可以通過下面的使用者定義函式實現查詢標準樹形資料的父節點。
create function f_pid(@id char(3))
returns @t_level table(id char(3))
asbegin
insert @t_level select @id
select @id=pid from tb
where id=@id
and pid is not null
while @@rowcount>0
begin
insert @t_level select @id
select @id=pid from tb
where id=@id
and pid is not null
endreturn
end
查詢指定節點的所有子節點的示例函式 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
測試資料 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...
JS實現 查詢指定父節點下所有子代節點
利用js遍歷出某個父節點下的所有子節點,深度優先遍歷,每一次都優先遍歷子節點,所有子節點遍歷完,才返回遍歷兄弟節點 第一種方式是利用遞迴將指定父節點下的所有子節點,但該方式空間占有率較高,耗時長 function getchildren parent 找body下面的所有子代節點 getchildr...