加入收藏 | 设为首页 | 会员中心 | 我要投稿 大庆站长网 (https://www.0459zz.com/)- 科技、智能边缘云、事件网格、云计算、站长网!
当前位置: 首页 > 数据库 > Oracle > 正文

Oracle最常见的行转列

发布时间:2020-07-03 13:39:47 所属栏目:Oracle 来源:互联网
导读:初始化数据: 组名 分数 得分项 开发一组 100 1 开发二组 90 1 开发三组 60 1 开发四组 80 1 开发一组 60 2 开发二组 70 2 开发三组 50 2 开发四组 80 2 需要得到: 开发一组 开发二组 开发三组 开发四组 1 100 90 60 80 2 60

初始化数据:

组名 分数 得分项

开发一组 100 1
开发二组 90 1
开发三组 60 1
开发四组 80 1
开发一组 60 2
开发二组 70 2
开发三组 50 2
开发四组 80 2

需要得到:
开发一组 开发二组 开发三组 开发四组
1 100 90 60 80
2 60 70 50 80

drop table test purge;
create table test(name varchar2(20),score number,course_id number);
insert into test values('开发一组',100,1);
insert into test values('开发二组',90,1);
insert into test values('开发三组',60,1);
insert into test values('开发四组',80,1);
insert into test values('开发一组',2);
insert into test values('开发二组',70,2);
insert into test values('开发三组',50,2);
insert into test values('开发四组',2);
commit;
select * from test;
NAME SCORE COURSE_ID
-------------------- ---------- ----------
开发一组 100 1
开发二组 90 1
开发三组 60 1
开发四组 80 1
开发一组 60 2
开发二组 70 2
开发三组 50 2
开发四组 80 2


select course_id,
max(case when name ='开发一组' then score else null end) 开发一组,
max(case when name ='开发二组' then score else null end) 开发二组,
max(case when name ='开发三组' then score else null end) 开发三组,
max(case when name ='开发四组' then score else null end) 开发四组
from test
group by course_id;
COURSE_ID 开发一组 开发二组 开发三组 开发四组 ---------- ---------- ---------- ---------- ---------- 1 100 90 60 80 2 60 70 50 80

(编辑:大庆站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读