做两个函数就可以了,如下:CREATE FUNCTION [dbo].[Employee_name] () RETURNS varchar(200) BEGINdeclare @s varchar(8000) set @s='' select @s=@s+','+员工姓名 from (select distinct 员工姓名 from 你的表 ) aset @s= stuff(@s,1,1,'') RETURN(@s) ENDCREATE FUNCTION [dbo].[Manage_name] () RETURNS varchar(200) BEGINdeclare @s varchar(8000) set @s='' select @s=@s+','+主管姓名 from (select distinct 主管姓名 from 你的表 ) aset @s= stuff(@s,1,1,'') RETURN(@s) END select dbo.Employee_name(),dbo.Manage_name()
-- 函数 CREATE FUNCTION dbo.f_str( @fdname sysname )RETURNS varchar(8000) AS BEGIN DECLARE @re varchar(8000) SET @re = '' SELECT @re = @re + ',' + col FROM( SELECT DISTINCT col = CASE @fdname WHEN '员工姓名' THEN 员工姓名 WHEN '主管姓名' THEN 主管姓名 END FROM 数据表 )A RETURN(STUFF(@re, 1, 1, '')) END GO-- 调用 SELECT 员工姓名 = dbo.f_str('员工姓名'), 主管姓名 = dbo.f_str('主管姓名')
RETURNS varchar(200)
BEGINdeclare @s varchar(8000)
set @s=''
select @s=@s+','+员工姓名 from
(select distinct 员工姓名 from 你的表 ) aset @s= stuff(@s,1,1,'') RETURN(@s)
ENDCREATE FUNCTION [dbo].[Manage_name] ()
RETURNS varchar(200)
BEGINdeclare @s varchar(8000)
set @s=''
select @s=@s+','+主管姓名 from
(select distinct 主管姓名 from 你的表 ) aset @s= stuff(@s,1,1,'') RETURN(@s)
END
select dbo.Employee_name(),dbo.Manage_name()
-- 函数
CREATE FUNCTION dbo.f_str(
@fdname sysname
)RETURNS varchar(8000)
AS
BEGIN
DECLARE @re varchar(8000)
SET @re = ''
SELECT @re = @re + ',' + col
FROM(
SELECT DISTINCT
col = CASE @fdname WHEN '员工姓名' THEN 员工姓名 WHEN '主管姓名' THEN 主管姓名 END
FROM 数据表
)A
RETURN(STUFF(@re, 1, 1, ''))
END
GO-- 调用
SELECT 员工姓名 = dbo.f_str('员工姓名'), 主管姓名 = dbo.f_str('主管姓名')