create table test(nuber int,words varchar(10))
insert test select 1,'a'
union all select 1,'b'
union all select 1,'b'
union all select 2,'a'select nuber,words
into #t from test order by nuber,wordsdeclare @nuber int,@words varchar(500)
update #t SET @words=case when @nuber=nuber then @words+','+words else words end,
@nuber=nuber,words=@wordsselect nuber,words=max(words) from #t group by nuber order by nuberdrop table #t,test/*
nuber       words      
----------- ---------- 
1           a,b,b
2           a
*/

解决方案 »

  1.   

    动态或表变量,或临时表算不算纯sql?
      

  2.   


    create table test(nuber int,words varchar(10))
    insert test select 1,'a'
    union all select 1,'b'
    union all select 1,'c'
    union all select 2,'a'select nuber,words
    into #t from test order by nuber,wordsdeclare @nuber int,@words varchar(500)
    update #t SET @words=case when @nuber=nuber then @words+','+words else words end,
    @nuber=nuber,
    words=@wordsselect nuber,words=max(words) from #t group by nuber order by nuberdrop table #t,testnuber       words      
    ----------- ---------- 
    1           a,b,c
    2           a
      

  3.   

    呵呵,我把临时表给忘记了,不过临时表应该不如函数速度快的,还是用函数来实现把,谢谢bill024(咖啡熊)和wgzaaa() 的参与