Oracle行转列操作
|
副问题[/!--empirenews.page--]
偶然辰我们在展示表中数据的时辰,必要将行转为列来表现,如以下情势: 原表布局展示如下: 此刻必要将上面的原表布局转换为如下所示的布局情势来展示: 一、建设贩卖表sale_hst表布局
--建设贩卖表
create table sale_hst
(
prdt_name varchar2(10),--产物名称
sale_amt number(8),--贩卖额
season varchar2(10)--季度
);
二、插入基本数据 --插入如上所示的基本数据 insert into sale_hst values (‘奶酪‘,50,‘第一季度‘); insert into sale_hst values (‘奶酪‘,60,‘第二季度‘); insert into sale_hst values (‘啤酒‘,80,‘第四序度‘); 三、行使SQL语句转换 方案1:行使case...when...then...else...end...语句
--方案1:行使case...when...then...else...end...语句
select
prdt_name,sum(case when season=‘第一季度‘ then sale_amt else 0 end) 第一季度贩卖额,sum(case when season=‘第二季度‘ then sale_amt else 0 end) 第二季度贩卖额,sum(case when season=‘第三季度‘ then sale_amt else 0 end) 第三季度贩卖额,sum(case when season=‘第四序度‘ then sale_amt else 0 end) 第四序度贩卖额
from sale_hst
group by prdt_name;
方案2:Oracle下可以用decode函数处理赏罚 声名: Oracle下可以用decode函数处理赏罚:
--方案2:Oracle下可以用decode函数处理赏罚
select
prdt_name,sum(decode(season,‘第一季度‘,sale_amt,0)) as 第一季度贩卖额,‘第二季度‘,0)) as 第二季度贩卖额,‘第三季度‘,0)) as 第三季度贩卖额,‘第四序度‘,0)) as 第四序度贩卖额
from sale_hst
group by prdt_name;
偶然辰我们又有如下的需求: 原表的数据情势展示如下: shopping表: 转换为如下的情势1展示: -------------------------------------------- 转换为如下的情势2展示: 一、建设购物表shopping表布局
--建设购物表shopping
create table shopping
(
u_id number(10),goods varchar2(8),num number(10)
);
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


