create function getstr(@content char(20))
returns varchar(2000)
as 
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+员工姓名 from 公司表 where 公司名称=@公司名称
set @str=right(@str,len(@str)-1)
return @str
end
go语句:
select distinct 公司名称,dbo.getstr(公司名称) 员工姓名 from 公司表

解决方案 »

  1.   

    create function getstr(@公司名称 varchar(20))
    returns varchar(8000)
    as 
    begin
    declare @str varchar(8000)
    set @str=''
    select @str=@str+','+员工姓名 from 公司表 where 公司名称=@公司名称
    set @str=right(@str,len(@str)-1)
    return @str
    end
    go
    --调用语句:
    select distinct 公司名称,dbo.getstr(公司名称) 员工姓名 from 公司表
      

  2.   

    --也可以用临时表,兼容7.0select 公司名称,员工姓名,a=cast('' as varchar(8000)) into #t from 公司表
    declare @gs varchar(50),@yg varchar(8000)
    update #t set @yg=case @gs when 公司名称 then @yg+员工姓名 else 员工姓名 end
      ,a=@yg,@gs=公司名称select 公司名称,员工姓名=max(a) from #t group by 公司名称
      

  3.   

    --少写了分隔符,改:select 公司名称,员工姓名,a=cast('' as varchar(8000)) into #t from 公司表
    declare @gs varchar(50),@yg varchar(8000)
    update #t set @yg=case @gs when 公司名称 then @yg+','+员工姓名 else 员工姓名 end
      ,a=@yg,@gs=公司名称select 公司名称,员工姓名=max(a) from #t group by 公司名称