Oracle 行转列(pivot、wm_concat、decode)使用总结
2012-09-06 10:32
609 查看
1.创建测试数据
希望看到查询結果:
2.使用wm_concat方法
3.使用Oracle 11g pivot方法
4.使用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
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;
4.使用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;
相关文章推荐
- Oracle 行转列(pivot、wm_concat、decode)使用总结
- Oracle 行转列(pivot、wm_concat、decode)使用总结(转载)
- oracle 中合并数据 wm_concat(column)函数的使用
- Oracle中wm_concat()的使用方法
- oracle合并列的函数wm_concat的使用详解
- MySQL的group_concat与Oracle的wm_concat使用区别
- oracle中的wm_concat(column)函数使用(字段合并)
- oracle 11g wm_concat 、 listagg 函数的使用(合并数据)
- oracle wm_concat(column)函数的使用
- Oracle 行转列总结 Case When,Decode,PIVOT 三种方式
- 关于oracle中的wmsys.wm_concat中的使用问题
- 关于oracle中的wmsys.wm_concat中的使用问题
- oracle合并列的函数wm_concat的使用详解
- 关于ORACLE wmsys.wm_concat 行转列函数使用
- Oracle中wm_concat()函数的使用
- oracle wm_concat(column)函数的使用
- oracle wmsys.wm_concat 函数的使用
- oracle合并列的函数wm_concat的使用详解
- oracle合并列的函数wm_concat的使用详解
- oracle wm_concat(column)函数的使用