zoukankan      html  css  js  c++  java
  • Oracle 行转列(pivot、wm_concat、decode)使用总结

    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;

    /*
    --希望看到查询結果:
    李四 77 85 65 65 292
    张三 87 90 82 78 337
    */
    ---1 decode 方法
    SELECT
    student,
    MAX(DECODE(COURSE, '语文', SCORE)) A,
    MAX(DECODE(COURSE, '数学', SCORE)) B,
    MAX(DECODE(COURSE, '英语', SCORE)) C,
    MAX(DECODE(COURSE, '物理', SCORE)) D,
    SUM(SCORE) TOTAL
    FROM
    CC
    GROUP BY
    student;

    --2 使用wm_concat方法
    SELECT STUDENT,WM_CONCAT(SCORE),SUM(SCORE) FROM CC GROUP BY STUDENT;
    --3 使用Oracle 11g pivot方法
    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;

    转自:http://blog.csdn.net/jxzkin/article/details/7949629

  • 相关阅读:
    pyinstaller安装和使用
    django项目结构和运行项目
    安装django and 创建项目
    浅谈网络请求基础(理论篇)
    浅谈爬虫初识
    判断是否AVL平衡二叉书
    用递归方法判断两棵树是否相等
    广度优先搜索求树的深度
    堆排序
    归并排序
  • 原文地址:https://www.cnblogs.com/kenwong/p/3976505.html
Copyright © 2011-2022 走看看