注册 登录
编程论坛 Oracle论坛

这个行列转换怎么搞啊,大神们

新人上路王 发布于 2022-09-16 21:06, 719 次点击
create table  ta(yearid varchar2(10),cnt_l number,cnt_2 number);
insert into ta values('2000年',1000,500);
insert into ta values('2001年',700,null);
insert into ta values('2002年',null,1200);
insert into ta values('2003年',null,null);
select * from ta
年份 月份 销量
2000  1   1000
2000  2    500
2001  1    700
2002  2   1200
上面是建表,下面是转换后得
1 回复
#2
ye191342022-10-11 09:30
SELECT * from(
SELECT yearid AS 年份,1 AS 月份,cnt_l AS 销量 FROM ta WHERE cnt_l IS NOT NULL
UNION ALL
SELECT yearid ,2,cnt_2 FROM ta WHERE cnt_2 IS NOT NULL
)
ORDER BY 年份;
1