解决方案 »

  1.   

    with tab as(
    select 1 id,'张三' name, 45 num,'数学' course from dual union all
    select 6 ,'张三',50,'英语' from dual union all
    select 9,'张三',80,'语文' from dual union all
    select 2,'小明',82,'英语' from dual)
    select name,
           sum(decode(course, '数学', num, 0)) 数学,
           sum(decode(course, '语文', num, 0)) 语文,
           sum(decode(course, '英语', num, 0)) 英语
      from tab
     group by name
      

  2.   

    select name,
           sum(decode(course, '数学', num, 0)) 数学,
           sum(decode(course, '语文', num, 0)) 语文,
           sum(decode(course, '英语', num, 0)) 英语
      from tab
     group by name
      

  3.   


    select * from user_cour;
    select name,
           sum(decode(course, '数学', num, 0)) 数学,
           sum(decode(course, '语文', num, 0)) 语文,
           sum(decode(course, '英语', num, 0)) 英语
      from user_cour
     group by namevery good! test is ok!