遞迴在MSSQL開發中的應用

2022-08-13 21:27:16 字數 1855 閱讀 1237

在人力資源管理系統中,常常會有通過工號查詢其所在部門主管的需求,但員工所在部門不一定有主管,可能要在上級才有,這時就需要用遞迴的方式將其主管找出來,mssql**:

/*

*/create

function

[dbo

].[fn_getdepmanager

](@depcode

varchar(30))

returns

varchar(30)

asbegin

declare

@personcode

varchar(230),@parentid

intif

exists(select

1from cs_department(nolock) where depcode=

@depcode)

begin

select

@parentid=[

parentid

],@personcode

=isnull(personcode,'') from cs_department(nolock) where depcode=

@depcode

ifisnull(@personcode,'')=

''begin

select

@depcode

=depcode from cs_department(nolock) where[id

]=@parentid

set@personcode

=dbo.fn_getdepmanager(@depcode)

endend

return

@personcode

end

還有部門的架構是多級時,需要將每一級的部門名稱顯示出來,也需要遞迴,mssql**:

/*

*/create

function dbo.fn_showdeptree

(@depcode

varchar(20))

returns

varchar(500)

asbegin

declare

@department

varchar(500),@depname

varchar(50),@parentid

intselect

@depname

='',@department=''

select

@parentid=[

parentid

],@depname

=department,@depcode

=depcode from cs_department where depcode=

@depcode

if@department=''

set@department

=@depname

else

set@department

=@depname+'

/'+@department

if (@parentid

>

0)

begin

select

@depcode

=depcode from cs_department where[id

]=@parentid

set@department

=dbo.fn_showdeptree(@depcode)+'/

'+@department

endreturn

@department

end

MSSQL中的遞迴查詢

本人向來很懶,下文均摘自msdn。公用表表示式 cte 具有乙個重要的優點,那就是能夠引用其自身,從而建立遞迴 cte。遞迴 cte 是乙個重複執行初始 cte 以返回資料子集直到獲取完整結果集的公用表表示式。當某個查詢引用遞迴 cte 時,它即被稱為遞迴查詢。遞迴查詢通常用於返回分層資料,例如 顯...

遞迴在遍歷檔案Tree中的應用

此程式用於結構化輸出檔案各個層級,以及計算檔案整個的大小 計算檔案長度 輸出檔案樹 public class ciotext class filetree public filetree public long getlen public void setlen long len public vo...

php在app開發中的應用

1 資料傳輸建議使用json,json具有很強的跨平台性,大多程式語言都支援json解析,json正在逐步取代xml,成為網路資料的通用格式。2 為了保證介面安全,一定要加入鑑權體系,確保請求php介面的是合法 另外對於傳輸的資料也可以使用加密技術,本書第20章有講述關於api介面簽名和資訊加密的內...