原貼:
表中有兩個字段:
子 父
a null
b a
c b
d c
e c
我的目的是:怎樣根據乙個父級條件,就把包括父級在內的所有子級查詢出來?
比如:父級條件是「b」,結果應該是:
子 父
b a
c b
d c
e c
父級條件是「c」,結果應該是:
子 父
c b
d c
e c
注意:子級數沒有限制,可以任意有任意數目的子級。
--測試環境
create table test(子 varchar(10),父 varchar(10))
insert into test select 'a',null
union all select 'b','a'
union all select 'c','b'
union all select 'd','c'
union all select 'e','c'
--建函式
create function f_tree(@父 varchar(10))
returns @t table(子 varchar(10),父 varchar(10),level int)
begin
declare @i int
set @i=1
insert @t select *,@i from test where 子=@父
while @@rowcount<>0
begin
set @i=@i+1
insert @t select a.*,@i from test a,@t b
where b.子=a.父 and b.level=@i-1
endreturn
end--查詢
select 子,父 from dbo.f_tree('b')
select 子,父 from dbo.f_tree('c')
--結果
子 父
---------- ----------
b a
c b
d c
e c
(4 row(s) affected)
子 父
---------- ----------
c b
d c
e c
(3 row(s) affected)
--刪除環境
drop table test
drop function f_tree
專題講解 樹專題 遞迴思路處理樹
我們都以二叉樹作為乙個標準的例子分析樹的問題常用的方法。首先我們先來分析遞迴的方法。有乙個很好的二叉樹的三步走戰略,我覺著很值得學習。三步走 方法的三步分別為 可以看出,核心有兩個,乙個是拆解子問題,乙個是是否使用全域性變數。全域性變數的使用很靈活的,因為python是可以返回多個變數,因此只是乙個...
用遞迴處理樹型結構 表結構
用遞迴處理樹型結構 表結構 遞迴求城市,從小到大的,或從大到小。等依次類推得目錄樹結構 我想寫乙個函式 傳入部門id號後 馬上得到相應的 部門結構 如 輸入8得到的是市場部 東南市場 上海市 輸入9得到的是市場部 西北市場 北京市 輸入6得到的是市場部 西北市場 輸入3得到的是市場部 輸入1得到的是...
遞迴高效處理
遞迴是一種 簡潔實現簡單的但效率不太高的處理重複計算的方法。效率不高是因為耗記憶體,耗記憶體是回溯時的重複計算,每次函式呼叫時引數的進棧出棧。所以,提高遞迴效率的方法就是減少重複計算。最簡單的就是儲存之前計算的結果。舉例說明,這是個常見的面試題 對於乙個遞迴函式w a,b,c 如果a 0 or b ...