zoukankan      html  css  js  c++  java
  • oracle中行转列操作

    数据准备阶段:

    CREATE TABLE CC  (Student NVARCHAR2(2),Course NVARCHAR2(2),Score INT); 

    INSERT into CC   
    select N'张三',N'语文',78 from dual union all  
    select N'张三',N'数学',87 from dual union all  
    select N'张三',N'英语',82 from dual union all  
    select N'张三',N'物理',90 from dual union all  
    select N'李四',N'语文',65 from dual union all  
    select N'李四',N'数学',77 from dual union all  
    select N'李四',N'英语',65 from dual union all  
    select N'李四',N'物理',85 from dual ;  
    commit; 

    操作如下:

    方法一、

    select 
    student,
    sum(decode(course,'语文',score)) 语文,
    sum(decode(course,'数学',score)) 数学,
    sum(decode(course,'英语',score)) 英语,
    sum(decode(course,'物理',score)) 物理,
    sum(score)
    from cc group by student;

     方法二、

    SELECT KIN.*,  
      KIN.a+KIN.b+KIN.c+KIN.d AS TOTAL  
    FROM  
      (SELECT   *  
      FROM CC PIVOT ( MAX(SCORE) FOR COURSE IN ('语文' AS A , '数学' AS B, '英语' AS C,'物理' AS D) )  
      ) KIN; 

    方法三、

    select 
    student,
    sum(case when course = '语文' then score else 0 end )语文,
    sum(case when course = '数学' then score else 0 end )数学,
    sum(case when course = '英语' then score else 0 end )英语,
    sum(case when course = '物理' then score else 0 end )物理
    from cc group by student;

    完。

  • 相关阅读:
    2014第8周二杂记
    2014第8周一JS正则小问题
    2014第7周日最强大脑
    2014第7周六杂记
    2014第7周五杂记
    2014第7周四excel多列文本复制技巧
    2014第7周三初识CouchBase
    2014第7周二需求
    2014第7周1Web安全概念学习
    shell程序之逐行读取一文件里的參数且使用此參数每次运行5分钟
  • 原文地址:https://www.cnblogs.com/hello-wei/p/10283527.html
Copyright © 2011-2022 走看看