gpt4 book ai didi

Oracle 数据显示 横表转纵表

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Oracle 数据显示 横表转纵表由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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 数据显示 横表转纵表的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com