项目中遇到一个树型结构表要根据任意传入节点获取它从根节点一直到自身节点的全部路径的中文名称,并且用'>'与分隔。
我使用在sqlServer中写了一个解析函数方便开发调用。
USE [RP_ERP]
GO
/****** Object: UserDefinedFunction [dbo].[Func_GetDeptPathName] Script Date: 01/09/2015 17:33:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Func_GetDeptPathName]
(
-- 当前部门的上级部门ID
@deptPid varchar(36),
-- 当前部门的名称
@deptName varchar(1000),
-- 是否取到根部门
@isRootName int
)
RETURNS varchar(1000)
AS
BEGIN
declare @temp varchar(50)
declare @id varchar(36)
set @id = ''
select @id=ParentCode,@temp=DeptName from HR_Department where DeptCode=@deptPid
if '' = @id and 1=@isRootName and '' <> @deptPid
set @deptName = @temp +' > '+ @deptName;
else if @id<>''
set @deptName = dbo.Func_GetDeptPathName(@id,@temp,@isRootName)+' > '+ @deptName
-- Return the result of the function
RETURN @deptName;
END
GO