一个表的记录内容类似
 字段1  字段2 
 0101   早餐
0101   中餐
0101   晚餐
 0102   早餐
0102   中餐
 我能不能用一个sql语句得到
0101  早餐;中餐;晚餐
0102 早餐;中餐
 这样一条记录 这样的sql该怎么写????
要oracle下的语句写法

解决方案 »

  1.   

    11g的话,考虑一下listagg。10g使用wm_concat。
      

  2.   

    ORACLE 版本11.2以上可以用下面语句:
    SELECT 字段1,LISTAGG(字段2,';') WITHIN GROUP() FROM TABLE
      

  3.   

    group后面的括号里需要加order by 语句,你想怎么排序自己加上。
      

  4.   

    SELECT 字段1,LISTAGG(字段2,';') WITHIN GROUP(ORDER BY 字段1) FROM TABLE  group by 字段1   详细参考http://www.cnblogs.com/tianmingt/p/4177460.html
      

  5.   

    select listagg(字段2 , ',') within group(order by 字段2 ) ||';'|| 字段1
      from 表
     group by 字段1