行转列的三种写法

原表在这里插入图片描述
目标表
请添加图片描述

第一种decode写法
select 年,
sum(decode(季度,‘1’, 增长率,null)) “一季度”,
sum(decode(季度,‘2’, 增长率,null)) “二季度”,
sum(decode(季度,‘3’, 增长率,null)) “三季度”,
sum(decode(季度,‘4’, 增长率,null)) “四季度”
from yea
group by 年

第二种case when写法
SELECT
年,
sum( case when 季度 = 1 then 增长率 else NULL end) as “一季度”,
sum( case when 季度 = 2 then 增长率 else NULL end) as “二季度”,
sum( case when 季度 = 3 then 增长率 else NULL end) as “三季度”,
sum( case when 季度 = 4 then 增长率 else NULL end) as “四季度”
FROM
( SELECT 年, 季度, 增长率 FROM yea )a
GROUP BY 年;

第三种 oracle11g新方式 :pivot写法
select *
from yea
pivot(sum(增长率) amt
for 季度 in(1 as"一季度", 2 as"二季度", 3 as"三季度", 4 as"四季度"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值