groupid           time
 1              2012-01-02
 2              2012-01-07
 2              2012-02-02
 1              2012-03-02
......
sql 查询得到这样的结果
groupid                time 
   1              2012-01-02,2012-03-02
  2              2012-01-07,2012-02-02也就把groupid 相同的 时间拼接成一个字符串

解决方案 »

  1.   

     select groupid ,wm_concat(time) time from your_table group by groupid;
      

  2.   

    wm_concat() 分组合并 以逗号分开 也可以对符号替换
      

  3.   

    最好用listagg,因为wm_concat可能出现 没有 乱序合并。。如果相同的groupid 按 行在前的 合并也在前,下面这样写select groupid, listagg(time, ',') within group(order by rownum)
      from t
     group by groupid;如果时间大的 ,合并也在前面,就换成order by time desc即可
      

  4.   

    wm_concat()    可能因为数据库版本而报错,谨慎使用。  支持7#