初始化数据:

组名 分数 得分项

开发一组 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

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。