1、查询完整组织名称
USE [populac]
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[f_getUnitName](@ VARCHAR(20))
RETURNS varchar(150)
AS
BEGIN
DECLARE @t TABLE(unitcode VARCHAR(30), upunitcode VARCHAR(30), [unitname] VARCHAR(80), [upunitname] VARCHAR(80),Level INT)
DECLARE @level INT
DECLARE @result varchar(150)
SET @level=1
INSERT INTO @t SELECT unitcode,upunitcode,unitname,upunitname,@level FROM unit WHERE [email protected]
WHILE(@@ROWCOUNT>0)
BEGIN
SET @level[email protected]level+1
INSERT INTO @t SELECT t.unitcode,t.upunitcode,t.unitname,t.upunitname,@level FROM unit AS t,@t AS a WHERE t.upunitcode<>'@' and a.upunitcode=t.unitcode AND [email protected]level-1
END
BEGIN
DELETE @t where [email protected]
END
select @result = stuff((select '-'+[unitname] from @t order by unitcode for xml path('')), 1, 1, '')
RETURN @result
END
复制代码
select dbo.f_getUnitName('100100020404'); //---党委/工会-党群办公室