oracle 列转行
1.新建一个名为TEST表 2.向TEST表中添加数据 INSERT INTO TEST(STUDENT,COURSE,SCORE) select '张三','语文',78 from dual union select '张三','数学',87 from dual union select '张三','英语',82 from dual union select '张三','物理',90 from dual unio
1.新建一个名为TEST表
2.向TEST表中添加数据
INSERT INTO TEST(STUDENT,COURSE,SCORE)
select '张三','语文',78 from dual union
select '张三','数学',87 from dual union
select '张三','英语',82 from dual union
select '张三','物理',90 from dual union
select '李四','语文',65 from dual union
select '李四','数学',77 from dual union
select '李四','英语',65 from dual union
select '李四','物理',85 from dual
表数据如下:
3.列转行
方法··1:
select
Student,
sum(decode(Course, '数学', Score)) 数学,
sum(decode(Course, '物理', Score)) 物理,
sum(decode(Course, '英语', Score)) 英语,
sum(decode(Course, '语文', Score)) 语文
from
TEST
group by Student
方法··2:
select
Student,
sum(case Course when '数学' then Score else null end) 数学,
sum(case Course when '物理' then Score else null end) 物理,
sum(case Course when '英语' then Score else null end) 英语,
sum(case Course when '语文' then Score else null end) 语文
from
TEST
group by Student
效果如下:
注:sum是求和的意思;比如说里面记录里面有两条张三,列转行显示的结果就会是两个张三的结果之和。
上一篇: 加大MySql的最大连接数_MySQL
下一篇: kafka安装及使用
推荐阅读
-
easyui combogrid实现本地模糊搜索过滤多列
-
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
-
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
-
Mysql表,列,库增删改查问题小结
-
通过创建SQLServer 2005到 Oracle10g 的链接服务器实现异构数据库数据转换方案
-
基于python连接oracle导并出数据文件
-
解决pandas read_csv 读取中文列标题文件报错的问题
-
对数据表中某2列的值对调
-
PowerDesigner16生成SQL2005列注释的方法
-
如何实现删除numpy.array中的行或列