行列转换.

表abc:

行列转换._第1张图片

(建表语句在文章末尾)

想要得到:

方法一

with
a as(select 年,产 from abc where 季=1),
b as(select 年,产 from abc where 季=2),
c as(select 年,产 from abc where 季=3),
d as(select 年,产 from abc where 季=4)
select a.年,a.产 春,b.产 夏,c.产 秋,d.产 冬
from a join b
on a.年=b.年
join c
on b.年=c.年
join d
on c.年=d.年
--表a————(2021,2022第一季度的年,产)起别名为a

with as应该是给查询出来的结果集表格起别名

方法二:

select 年
,max(case 季 when 1 then 产 end)春
,max(case 季 when 2 then 产 end)夏
,max(case 季 when 3 then 产 end)秋
,max(case 季 when 4 then 产 end)冬
from abc
group by 年;

附建表语句:

create table abc(
年 number,
季 number,
产 number)

insert into abc (年,
                 季,
                 产)
values(2021,1,100);
insert into abc (年,
                 季,
                 产)
values(2021,2,110);
insert into abc (年,
                 季,
                 产)
values(2021,3,120);
insert into abc (年,
                 季,
                 产)
values(2021,4,130);
insert into abc (年,
                 季,
                 产)
values(2022,1,160);
insert into abc (年,
                 季,
                 产)
values(2022,2,170);
insert into abc (年,
                 季,
                 产)
values(2022,3,180);
insert into abc (年,
                 季,
                 产)
values(2022,4,190);
select * from abc;

 

你可能感兴趣的:(SQL-Oracle,数据库)