欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

oracle中使用decode进行数据的列转换为行的试验

程序员文章站 2022-06-14 10:43:47
...

如何将以下数据格式的数据转换为初始化格式如下:1市*房产1232省*房产..

如何将以下数据格式的数据转换为
初始化格式如下:
1 市* 房产 1 2 3
2 省* 房产 4 3 4
3 肥东 房产 5 4 5
4 肥西 房产 6 5 7
5 长风 房产 7 7 8
6 淮南 房产 8 9 5
7 市* 汽车 1 2 3
8 省* 汽车 4 3 4
9 肥东 汽车 5 4 5
10 肥西 汽车 6 5 7
11 长风 汽车 7 7 8
12 淮南 汽车 8 9 5
13 肥西 奢侈品 6 5 7
14 长风 奢侈品 7 7 8
15 淮南 奢侈品 8 9 5
16 市* 贵重首饰 1 2 3
17 省* 贵重首饰 4 3 4
18 肥东 贵重首饰 5 4 5
需要转变为
房产 汽车 奢侈品 奢侈品
PRO_TYPE 场次 销售价 佣金 场次 销售价 佣金 场次 销售价 佣金 场次 销售价 佣金
1 淮南 8 9 5 8 9 5 8 9 5
2 肥东 5 4 5 5 4 5 5 4 5
3 市* 1 2 3 1 2 3 1 2 3
4 省* 4 3 4 4 3 4 4 3 4
5 肥西 6 5 7 6 5 7 6 5 7
6 长风 7 7 8 7 7 8 7 7 8
处理sql语句如下:

select pro_type, sum(decode(bm_tyoe, '房产', jiage1)) 房产场次, sum(decode(bm_tyoe, '房产', jiage2)) 房产销售价, sum(decode(bm_tyoe, '房产', jiage3)) 房产佣金, sum(decode(bm_tyoe, '汽车', jiage1)) 汽车场次, sum(decode(bm_tyoe, '汽车', jiage2)) 房产销售价, sum(decode(bm_tyoe, '汽车', jiage3)) 汽车佣金, sum(decode(bm_tyoe, '奢侈品', jiage1)) 奢侈品场次, sum(decode(bm_tyoe, '奢侈品', jiage2)) 奢侈品销售价, sum(decode(bm_tyoe, '奢侈品', jiage3)) 奢侈品佣金, sum(decode(bm_tyoe, '贵重首饰', jiage1)) 贵重首饰场次, sum(decode(bm_tyoe, '贵重首饰', jiage2)) 贵重首饰销售价, sum(decode(bm_tyoe, '贵重首饰', jiage3)) 贵重首饰佣金 from tmp_table group by pro_type