码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 行转列(pivot、wm_concat、decode)使用总结

时间:2014-09-17 11:45:22      阅读:687      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   使用   ar   for   art   sp   log   

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

Oracle 行转列(pivot、wm_concat、decode)使用总结

标签:blog   http   io   使用   ar   for   art   sp   log   

原文地址:http://www.cnblogs.com/kenwong/p/3976505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!