SQL递归获取树型路径中文名称
项目中遇到一个树型结构表要根据任意传入节点获取它从根节点一直到自身节点的全部路径的中文名称,并且用'>'与分隔。
我使用在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