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
最新文章
- 梯度下降(Gradient Descent)小结
- 如何使用.NET开发全版本支持的Outlook插件产品(二)——完善插件
- ie9及以下不兼容event.target.dataset对象
- 3D Touch
- O(1) Check Power of 2 - LintCode
- Java SWT 做计算器。
- python3.3中使用tornado.options.parse_config_file的时候,在windows下conf为utf-8时,报错的问题
- 分段统计与Oracle的分析函数、逻辑判断等知识点的综合运用
- Mob短信验证的配置的解释
- SPOJDIVCNT2: Counting Divisors(莫比乌斯反演)
- crawler_网络爬虫之数据分析_httpwatcher
- 关于Mysql的索引
- 如何使用npm构建一个react demo项目
- [Vue] vue跳转外部链接
- 改变highCharts的X轴和Y轴的数据刻度
- djongo:Django和MongoDB连接器
- c# 对文件操作
- MySql 存储过程 退出
- FileZilla_server在Windows和Linnx下的部署安装
- MP实战系列(十八)之XML文件热加载