name    number        string
张三     100       我的名字叫
张三      50          张三
李四     200       我的名字叫
李四      90          李四
李四      10         大家好
王五     300       我的名字叫
王五     100          王五
输出样式
name     number       string
张三      150      我的名字叫张三
李四      300      我的名字叫李四大家好
王五      400      我的名字叫王五
求达人、高手帮忙看看oracle能不能以这样的形式输出

解决方案 »

  1.   

    select name,sum(number),wm_concat(string) from 表 group by name
      

  2.   


    楼主把逗号replace掉就行了
    SELECT NAME,SUM(NUMB) NUM,replace(wm_concat(STRING),',') string
    FROM TEST
    GROUP BY NAME
    ORDER BY 2
      

  3.   

    测试数据:CREATE TABLE T34
    (
        NAME VARCHAR2(20),
        NUM NUMBER(4),
        STRING VARCHAR2(40)    
    );INSERT INTO T34 VALUES('张三', 100, '我的名字叫');
    INSERT INTO T34 VALUES('张三', 50, '张三');
    INSERT INTO T34 VALUES('李四', 200, '我的名字叫');
    INSERT INTO T34 VALUES('李四', 90, '李四');
    INSERT INTO T34 VALUES('李四', 10, '大家好');
    INSERT INTO T34 VALUES('王五', 300, '我的名字叫');
    INSERT INTO T34 VALUES('王五', 100, '王五');
    测试结果:
      

  4.   

    with t as (
    select '张三' name, 100 num, '我的名字叫' info from dual union all
    select '张三' name, 50 num, '张三' info from dual union all
    select '李四' name, 200 num, '我的名字叫' info from dual union all
    select '李四' name, 90 num, '李四' info from dual union all
    select '李四' name, 10 num, '大家好' info from dual union all
    select '王五' name, 300 num, '我的名字叫' info from dual union all
    select '王五' name, 100 num, '王五' info from dual )
    select name,replace(wm_concat(info),',','') , sum(num)  from t  group by name
      

  5.   

    select name,sum(num) num,replace(wm_concat(string),',','') string from t34 group by name
      

  6.   

    虽然大家说了用wm_concat函数,为什么不去考虑楼主是以什么顺序来连接的呢?大家把数据打乱插入后,再用wm_concat函数来连接试试,结果就不是楼主想要得连接结果了
    所以考虑楼主的连接顺序是什么才是重点,配合分析函数一起使用,就OK了!