关键是我不知道在SQLServer的自定义函数里怎么搞行遍历,故请各位不吝赐教。

解决方案 »

  1.   

    做两个函数就可以了,如下: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()
      

  2.   


    -- 函数
    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('主管姓名')