oracle中行转列操作
2024-10-07 00:00:54
数据准备阶段:
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;
完。
最新文章
- C语言中把数字转换为字符串 【转】
- ftp 530 This FTP serveris anonymous only,
- data-role参数表:
- CH Round #45 能量释放
- Mvc音乐商店demo的ajax异步删除功能总结
- Composer加速
- Adobe Acrobat 9 Pro 注册码
- 201521123036 《Java程序设计》第2周学习总结
- python之socket编程------粘包
- .NET Core 如何调用 WebService
- 20165326 java第五周学习笔记
- 【selenium】XPATH语法(一)
- Node.js处理I/O数据之Buffer模块缓冲数据
- 【Unity3D游戏开发】NGUI之DrawCall数量 (四)
- IR的评价指标之MRR
- arcgis api for silverlight开发系列之二:缓存图层与动态图层及图层总结 .
- 关于JWT.NET
- Communication with each role instance in Azure
- ABP框架应用-MySQL数据库集成
- 更改vsftpd默认的21端口
热门文章
- RabbitMQ学习之:(八)Topic Exchange (转贴+我的评论)
- HashMap 怎么 hash?又如何 map?
- 包含min函数的栈、队列
- redis开启持久化、redis 数据备份与恢复
- Springboot入门5-项目打包部署(转载)
- vue的双向绑定和依赖收集
- LeetCode.1184-公交车站之间的距离(Distance Between Bus Stops)
- 事务配置在applicationContext.xml文件中不起作用,控制不了异常回滚
- 基于模板匹配的目标跟踪(OpenCV)
- Archlinux开启ssh服务命令