如何让SQL查询出来的结果中的几条记录的某个字段变成一条记录显示?比如:SELECT A,B,C,D FROM TB1 查询出来的记录有10条,现在想把B、C、D列内容相同的记录挑出来,比如有3条记录的B、C、D列内容都相同,但是显示的时候只显示一条,并且这三条记录只显示成一条,但是A列的内容要全部显示出来。比如SELECT语句查询后如下:
林健 带电二班 8.4建加班费,锦鋆抵休单
王鋆 带电二班 8.4建加班费,锦鋆抵休单
吴锦 带电二班 8.4建加班费,锦鋆抵休单想实现: 
带电二班 8.4建加班费,锦鋆抵休单 林健 王鋆 吴锦不懂SQL中能实现成这样么?谢谢!

解决方案 »

  1.   

    SELECT B,C,D,(select A + ' ' from TB1 where B = tabname.B and C = tabname.C  and D = tabname.D  for xml path('')) as tabname  FROM TB1 a group by B,C,D
      

  2.   

    SELECT B,C,D,(select A + ' ' from TB1 where B = tabname.B and C = tabname.C and D = tabname.D for xml path('')) as  a FROM TB1 tabname  group by B,C,D
      

  3.   


    你好,for xml path(''))  这是啥意思呀?这个要怎么用?还有tabname和TB1 是同个表名吧?
      

  4.   

    可是会提示:
    服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: 'xml' 附近有语法错误。
      

  5.   


    SELECT B,C,D,
    (select A + ' ' from TB1 where B = tabname.B and C = tabname.C and D = tabname.D 
    for xml path('')) as  a FROM TB1 tabname  group by B,C,D没有问题吧,我试了下可以的呀
      

  6.   

    for xml path用法
    http://www.docin.com/p-73893088.html  
      

  7.   

    select [林健]+[王鋆]+[吴锦] as names,classname ,content1,content2 from #temp 
    pivot(max([name])  for [name] in ([林健],[王鋆],[吴锦]) ) piv上边那些用xml的方法也可行的