关于oracle和db2中的纵表转横表的例子
在数据库开发的过程中,经常会遇到把纵表的数据转换为横表展示出来。今天我就把经常遇到的实现的方法总结出来,还请大家指点错误啊。或者有更好的方法,也可以让我学习学习。
---以下脚本是在db2中实现的
第一个:纵表转横表的"SQL"示例
纵表结构: TEST_vip
acct_month 卡级别 数量
201201 钻卡 1
201201 金卡 2
201201 银卡 3
转换后显示如下
acct_month 钻卡数量 金卡数量 银卡数量
201201 1 2 3
实现思路为先将表中的数据构造成需要展示的列数,再在最外层将此值全部累加即可。
实现的sql为:
select acct_month,
sum(zk_count),
sum(jk_count),
sum(yk_count)
from (select acct_month,
case when card_level = '钻卡' then card_count end as zk_count,
case when card_level = '金卡' then card_count end as jk_count,
case when card_level = '银卡' then card_count end as yk_count
from TEST_vip
) group by acct_month;
第二个:
表结构如下:
表1 表2
字段1 字段2 字段3 字段4
A 1 A 1,2,3
A 2 B 5,6
A 3 C 7,8,9
B 5
B 6
C 7
C 8
&