[点晴永久免费OA]递归在MSSQL开发中的应用
					当前位置:点晴教程→点晴OA办公管理信息系统
					
					→『 经验分享&问题答疑 』
					
				 
				
   在人力资源管理系统中,常常会有通过工号查找其所在部门主管的需求,但员工所在部门不一定有主管,可能要在上级才有,这时就需要用递归的方式将其主管找出来,MSSQL代码:	
	 
			/*     功能:取得指定部门代码的部门负责人     创建人:baronyang     创建时间:2008-12-23     */     CREATE   FUNCTION [dbo].[Fn_GetDepManager]     (@DepCode varchar(30))      RETURNS varchar(30)     as     BEGIN           declare @PersonCode varchar(230),@ParentID int         IF Exists(select 1 from cs_department(nolock) where DepCode=@DepCode)         Begin          select @ParentID=[ParentID],@PersonCode=isnull(PersonCode,'''') from cs_department(nolock) where DepCode=@DepCode          IF Isnull(@PersonCode,'''')=''''         Begin            select @DepCode=DepCode from cs_department(nolock) where [ID]=@ParentID                   set @PersonCode=dbo.Fn_GetDepManager(@DepCode)                    End       End       RETURN @PersonCode       END 还有部门的架构是多级时,需要将每一级的部门名称显示出来,也需要递归,mssql代码: /*     功能:取得指定部门代码的上级组织     创建人:baronyang     创建时间:2008-10-21     */     Create  FUNCTION dbo.Fn_ShowDepTree     (@DepCode varchar(20))      RETURNS varchar(500)     as     BEGIN         declare @Department varchar(500),@DepName varchar(50),@ParentID int       select @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         end     RETURN @Department     END 该文章在 2020/3/3 1:50:49 编辑过  | 
		
			 关键字查询 
				相关文章 
				正在查询...  |