樹型結構資料,求某結點的所有父結點的自定義函式

2021-04-12 12:36:51 字數 1503 閱讀 2760

create function  f_father(@dpcode varchar(9))  /*樹型結構資料,求某結點的所有父結點的自定義函式*/

returns  @new table([dpcode] [varchar] (9)  ,     --結點編碼

[dpname] [varchar] (20) ,  --結點名稱

[dpcode_p] [varchar] (9) --此結點的父結點編碼

)  as 

begin

declare @temp table([dpcode] [varchar] (9)  ,     --結點編碼

[dpname] [varchar] (20) ,  --結點名稱

[dpcode_p] [varchar] (9)   --此結點的父結點編碼

)  --資料臨時存放表

declare @t table([dpcode] [varchar] (9)  ,     --結點編碼

[dpname] [varchar] (20) ,  --結點名稱

[dpcode_p] [varchar] (9)   --此結點的父結點編碼

)   --中間臨時表

declare @tt table([dpcode] [varchar] (9)  ,     --結點編碼

[dpname] [varchar] (20) ,  --結點名稱

[dpcode_p] [varchar] (9)   --此結點的父結點編碼

)  --中間交換臨時表

delete   @temp

delete  @t

delete @tt

delete  @new

insert into @temp select dptcode, dptname, dptcode_p  from base_dept   

insert into @t  select * from @temp where dpcode=@dpcode 

insert into @new  select * from @t  --結果臨時表

while ( 1=1)

begin

if (exists(select * from @t where dpcode ='001'))  --當為根時,停止迴圈

begin

break

end   

insert into @tt select * from @t --中間交換臨時表

delete @t

insert into @t select * from @temp where dpcode in

(select dpcode_p from @tt)

delete @tt

insert into @new select * from @t  

end--insert into @new select * from @temp where dpcode=@dpcode 

return

end

樹型資料結構SQL語句的寫法

在一個關聯式資料庫中,可以表現分等級的資訊。建立的表結構如下 create table employee emp id number 4 constraint emp pk primary key,fname varchar2 15 not null,lname varchar2 15 not nu...

SQL Server樹型結構資料處理的儲存過程

我們在平常的系統開發中常常會遇到像無限級分類這樣的樹型結構資料,現提供一個可用的資料庫儲存過程,可以完成樹型結構資料的排序。環境 windows7 sql server 2008 說明 下面 已經轉換成sql server2000的指令碼,處理效果如下,看sortname欄位結果,經過測試。建立樹型...

巧用SQL中的WITH(樹型結構資料的查詢)

如果表中存放的資料是樹形結構,當知道某一個節點的值時,同時想取得它所有子節點的資料。表結構 表中存放的是部門組織結構,bmn cd部門,ssk kaiso lv是階層,bmn mkj部門名稱,joi kaiso lv上位階層,joi bmn cd上位部門。檢索sql with moduals bmn...

資料結構 c語言 二叉連結串列樹 求兩個結點的共同路徑

依然是上週的資料結構作業 先說一下思路,要找兩個結點的共同路徑,就先分別求出兩個結點的路徑並儲存 然後通過對比各自的路徑找到共同路徑,這裡我感覺應該還可以拓展到多個結點 不過沒有什麼時間去 嘗試 下面是我的 這裡按照題目要求,使用了同時含有雙親和左右孩子的結構,事實證明,有了雙親結點的話,計算結點的...

資料結構 求二叉樹中兩個結點最近的公共祖先

對於兩個結點最近的公共祖先,有三種情況 1,該二叉樹是一棵二叉搜尋樹 struct treenode treenode lowestancestor treenode root,treenode node1,treenode node2 else if root value m1 else retu...