DB中记录:
    A字段   B字段
      111     a
     111     b
     111     c
     222     g
     222     h想要得到的结果:
  A字段    B字段
   111     a,b,c
   222     g,h

解决方案 »

  1.   

    又是个经典问题啊
    10G
    select A字段,WMSYS.WM_CONCAT(B字段) B字段
    from tab
        group by A字段
      

  2.   

    10以下的
    select A字段,substr(max(sys_connect_by_path(B字段 ,' ')),2) B字段  
    from (select a.*,row_number()over(partition by A字段 order by B字段) rn from a ) 
      group by A字段  
      start with rn=1 
    connect by rn-1=prior rn and A字段 =prior A字段  
      

  3.   

    第二个就是10G以下的解法,复杂点
    因为经常有人问,就收藏起来,回答时ctrl+C + CTRL+V
      

  4.   

    非常感谢,能否解释一下用法呢,以前总写简单的SQL,没用过这些东东.再回一帖,50分奉上.