--1.创建一个合并的函数
create function fmerg(@id char(4))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+data from 表A where id=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go--调用自定义函数得到结果
select distinct id,dbo.fmerg(id) from 表A

解决方案 »

  1.   

    create function getstr(@字段i varchar(10))
    returns varchar(8000)
    as 
    begin
    declare @str varchar(8000)
    set @str=''
    select @str=@str+','+data from 你的表 where id=@字段i order by sg
    select @str=right(@str,len(@str)-1)
    return @str
    end
    go
    --调用:
    select id,dbo.getstr(id) data from 你的表 group by id
    go
      

  2.   

    --sql7.0就用临时表:select id,sg,data,ndata=cast('' as varchar(8000)) into #tb from 表 order by id,sg
    declare @id varchar(4),@data varchar(10)
    update #tb set @data=case @id when id then @data+' '+data else data end
      ,data=@data,@id=id
    select id,max(ndata) from #tb group by id
    drop table #tb