oracle 行转列

来源:互联网 发布:铁塔倾斜度的算法 编辑:程序博客网 时间:2024/04/29 06:57
//原数据表结构如下:
产品名称    销售额  季度奶酪          50     第一季度奶酪          60     第二季度啤酒          50     第二季度啤酒          80     第四季度
//想转换成如下格式:产品名称 第一季度销售额 第二季度销售额 第三季度销售额 第四季度销售额奶酪          50               60           0              0啤酒           0               50           0              80

//第一种方法:
oracle下可以用函数decode处理:select 产品名称,sum(decode(季度,'第一季度',销售额,0)) 第一季度销售额,sum(decode(季度,'第二季度',销售额,0)) 第二季度销售额,sum(decode(季度,'第三季度',销售额,0)) 第三季度销售额,sum(decode(季度,'第四季度',销售额,0)) 第四季度销售额,from 表名 group by 产品名称;

//第二种方法 case when:
select 产品名称,sum(case when 季度='第一季度' then 销售额 else 0 end) as 第一季度销售额,sum(case when 季度='第二季度' then 销售额 else 0 end) as 第二季度销售额,sum(case when 季度='第三季度' then 销售额 else 0 end) as 第三季度销售额,sum(case when 季度='第四季度' then 销售额 else 0 end) 第四季度销售额from 表名 group by 产品名称;

0 0