用sqlserver的自定义函数直接获取多级部门全名
好久没写存储过程了,今日正好同事的开发需要,实现显示多级部门的部门全名称。
如 财务部/会计部/会计一部
部门表 |
|
人员表 |
|
函数 getOrgAllName |
--OrgID 72 当前的部门ID ALTER function [dbo].[getOrgAllName](@OrgID int) returns nvarchar(500) as begin --调试用 --declare @OrgID int --set @OrgID=72 declare @oname nvarchar(50) declare @fid int declare @rtnValue nvarchar(500) select @oname=orgname,@fid=parentid from sys_org where orgid=@OrgID if (@fid=0) set @rtnValue=@oname else begin select @rtnValue=dbo.getOrgAllName(@fid) set @rtnValue=@rtnValue+'\'+@oname end --print @rtnValue return @rtnValue end
|
调用和测试结果 |
select UserID,USERNO,USERNAME,ORGID, dbo.getOrgAllName(OrgID) as 部门全称 from Sys_User
|