在人力資源管理系統中,常常會有通過工號查詢其所在部門主管的需求,但員工所在部門不一定有主管,可能要在上級才有,這時就需要用遞迴的方式將其主管找出來,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介面簽名和資訊加密的內...