--创建合并函数
create function f_merg(@id int)
returns varchar(8000)
as
begin
declare @re varchar(8000)
set @re=''
select @re=@re+':'+x+':'+y from 表 where id=@id
set @re=substring(@re,2,8000)
return(@re)
end
go--调用实现你的要求
select id,xy=dbo.f_merg(id) from 表 group by id

解决方案 »

  1.   

    下午刚写了一个类似的,你参考一下:
    http://expert.csdn.net/Expert/topic/2568/2568757.xml?temp=.3697779
      

  2.   

    --下面是数据测试--测试数据
    create table 表(id int,x varchar(1),y varchar(1))
    insert into 表
    select 1,'a','A'
    union all select 1,'b','B'
    union all select 1,'c','C'
    union all select 2,'d','D'
    go--创建合并函数
    create function f_merg(@id int)
    returns varchar(8000)
    as
    begin
    declare @re varchar(8000)
    set @re=''
    select @re=@re+':'+x+':'+y from 表 where id=@id
    set @re=substring(@re,2,8000)
    return(@re)
    end
    go--调用实现你的要求
    select id,xy=dbo.f_merg(id) from 表 group by id
    go--删除测试环境
    drop table 表
    drop function f_merg/*--测试结果
    id          xy          
    ----------- ------------
    1           a:A:b:B:c:C
    2           d:D(所影响的行数为 2 行)--*/
      

  3.   

    创建自定义函数
    create function f_merge(@a varchar(10))
    returns varchar(8000)
    as
    begin
    declare @ret varchar(8000)
    set @ret=''
    select @ret=@ret+x+':'+y from 表 where a=@a
    return(@ret)
    endselect id,dbo.f_merge(id) from 表 group by id
      

  4.   

    我需要的是一条sql语句,因为数据库不一定是sqlserver,能用sql语句实现吗?
      

  5.   

    ---大力的,参考!
    create table 你的表(column1 char(12),column2 int)insert 你的表 values('kk' ,       1)
    insert 你的表 values('gg'  ,      1)
    insert 你的表 values('erew' ,     2)
    insert 你的表 values('43243' ,    3)declare @a varchar(8000),@b intselect *,cast('' as varchar(8000)) value into #临时表 from 你的表update #临时表 set @a=case when @b=column2 then rtrim(@a)+',' else '' end+column1,@b=column2,value=@aselect max(value) result from #临时表 group by column2go
    drop table #临时表,你的表