tvb直播软件,cr2025,趣味英语
1.建表
-- create table
create table test
(
dm1 char(3),
dm2 char(3),
mc1 nvarchar2(20),
val nvarchar2(20)
)
2.填入数据如下:
dm1 |
dm2 |
mc1 |
val |
101 |
1 |
c1 |
100 |
101 |
1 |
c2 |
80 |
101 |
1 |
c3 |
40 |
101 |
2 |
c1 |
30 |
101 |
2 |
c2 |
80 |
102 |
4 |
c1 |
9 |
102 |
6 |
c2 |
50 |
转换后数据显示如下:
dm1 |
dm2 |
c1 |
c2 |
c3 |
101 |
1 |
100 |
80 |
40 |
101 |
2 |
30 |
80 |
|
102 |
4 |
9 |
|
|
102 |
6 |
|
50 |
|
3.转换语句:
select dm1,dm2,sum(decode(mc1,'c1',val)) c1,sum(decode(mc1,'c2',val)) c2,sum(decode(mc1,'c3',val)) c3
from test
group by dm1,dm2
注:该语句是在val为数值的情况下的执行方法,如果val不为数值型,或者包含字符串等类型的话,运用sum会报错,这里可以采用另外一个方法,将sum改为max即可,语句如下:
select dm1,dm2,max(decode(mc1,'c1',val)) c1,max(decode(mc1,'c2',val)) c2,max(decode(mc1,'c3',val)) c3
from test
group by dm1,dm2
此外,横表转纵表亦可用与decode意义相似的case语句实现,原理同该语句,这里不再过多描述。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!!
点击进行留言回复
相关文章:
-
-
-
快速向表插入大量数据
当需要对一个非常大的表INSERT的时候,会消耗非常多的资源,因为update表的时候,oracle需要生成 redo log和undo log;此时最...
[阅读全文]
-
-
-
Oracle入门学习五
学习视频: https://www.bilibili.com/video/BV1tJ411r7EC?p=55 数据的完整性:保证插入表格的数据必须正确。...
[阅读全文]
-
Oracle入门学习六
事务:把一组操作看做一个工作单元,要么都执行,要么都不执行。dml操作才有事务,查询没有事务。 开始事务:从上一次的事务结束之后,从第一次dml操作,就...
[阅读全文]
-
-
-
Oracle入门学习一
oracle的安装,用户授权,表格操作,数据类型,ddl表格,dml数据。 下一篇:Oracle入门学习二 学习视频:https://www.bilib...
[阅读全文]
-
Oracle入门学习二
上一篇:Oracle入门学习一 学习视频:https://www.bilibili.com/video/BV1tJ411r7EC?p=15 算术运算符:...
[阅读全文]
网友评论