原表
目标表
第一种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"四季度"));