在表t中有:   num_f    detail
    a       zzb
    a       abc
    b       asd
    c       ccc
    a       cd
    c       cff
希望冲t中选出的数据为:
    a       zzb abc cd
    b       asd
    c      ccc cff
 其中a的组合可以是任意的:abc zzb cd 或者cd zzb abc ...
 c也是如此: cff ccc 
也就是说选出distinct num_f ,然后把detail的值连在一起
不知道如何实现?

解决方案 »

  1.   

    --写个合并函数
    create function fn_detail(
    @num_f varchar(10)
    )
    returns varchar(600)
    as
    begin
       declare @r varchar(600)
       set @r=''
       selet @r=@r+ ' '+ detail from t where num_f=@num_f
       if @r<>''
          set @r=stuff(@r,1,1,'')
       return @r
    end--调用
    select num_f,dbo.fn_detail(num_f) as detail
    from t
    group by num_f
      

  2.   

    --写个合并函数
    create function fn_detail(
    @num_f varchar(10)
    )
    returns varchar(600)
    as
    begin
       declare @r varchar(600)
       set @r=''
       selet @r=@r+ ' '+ detail from t where num_f=@num_f
       if @r<>''
          set @r=stuff(@r,1,1,'')
       return @r
    end
    go--调用
    select num_f,dbo.fn_detail(num_f) as detail
    from t
    group by num_f