主页 > 知识库 > Oracle 数据显示 横表转纵表

Oracle 数据显示 横表转纵表

热门标签:语音电话机器人营销方案 广州市400电话办理 修改高德地图标注 语音电话机器人缺点 百变地图标注 地图标注原件 南通防封外呼系统运营商 淮安自动外呼系统开发 宜宾外呼系统厂家
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语句实现,原理同该语句,这里不再过多描述。

标签:南平 股票投资 襄阳 聊城 池州 通化 南平 嘉峪关

巨人网络通讯声明:本文标题《Oracle 数据显示 横表转纵表》,本文关键词  Oracle,数据,显示,横表转,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Oracle 数据显示 横表转纵表》相关的同类信息!
  • 本页收集关于Oracle 数据显示 横表转纵表的相关信息资讯供网民参考!
  • 推荐文章