select 姓名,sum(decode(科目,数学,分数,0)) 数学,
            sum(decode(科目,语文,分数,0)) 语文, 
            sum(decode(科目,物理,分数,0)) 物理, 
            sum(decode(科目,化学,分数,0)) 化学, 
            sum(分数) 总分 
from yourtable group by 姓名;

解决方案 »

  1.   

    有关这些行列转换的一大堆问题了,FAQ里面肯定不少,去搜索DECODE看看吧
      

  2.   

    select 姓名,sum(decode(科目,数学,分数,'null')) 数学,
                sum(decode(科目,语文,分数,'null')) 语文, 
                sum(decode(科目,物理,分数,'null')) 物理, 
                sum(decode(科目,化学,分数,'null')) 化学, 
                sum(分数) 总分 
    from yourtable group by 姓名;