oracle多行转多列,急!

时间:2021-09-03 10:28:51
数据表是这种结构
姓名 职级 部门 得分 年月
A 客服专员 客服部 88 2015-01
A 客服专员 客服部 84 2015-02
A 客服专员 客服部 91 2015-03
A 客服专员 客服部 78 2015-04
A 客服专员 客服部 91 2015-05
A 客服专员 客服部 93 2015-06
B --               -- ---- 2015-01
。 。。。 。。。 。 。。。

我需要在jsp页面上显示出这中效果
求助大神,oracle 的sql语句怎么写,或者不用sql的话,大家有什么好办法

姓名 职级 部门 2015-01 2015-02 2015-03 2015-04 2015-05 2015-06 ...
A 客服专员 客服部 88 84 91 78 91 93 。。。
B -- --- ---

6 个解决方案

#1


在前给个别名好像就会想你要的那样

#2


select column1,column2,column3,
decode(column4,'2015-01',column5,null) "2015-01",
decode(column4,'2015-02',column5,null) "2015-02",
.....
 from table;
当然你这个必须是年月固定已知的情况

#3


select column1,column2,column3,
decode(年月,'2015-01',得分,null) "2015-01",
decode(年月,'2015-02',得分,null) "2015-02",
.....
 from table;

#4


3楼写的挺好的                        

#5


引用 2 楼 y1321735393 的回复:
select column1,column2,column3,
decode(column4,'2015-01',column5,null) "2015-01",
decode(column4,'2015-02',column5,null) "2015-02",
.....
 from table;
当然你这个必须是年月固定已知的情况


谢谢你,解决了,不过需要在decode上前加个 sum,要不还是多行,感谢

#6


引用 3 楼 lonelywyl 的回复:
select column1,column2,column3,
decode(年月,'2015-01',得分,null) "2015-01",
decode(年月,'2015-02',得分,null) "2015-02",
.....
 from table;


也谢谢你,解决了,不过需要在decode上前加个 sum,要不还是多行,感谢 

#1


在前给个别名好像就会想你要的那样

#2


select column1,column2,column3,
decode(column4,'2015-01',column5,null) "2015-01",
decode(column4,'2015-02',column5,null) "2015-02",
.....
 from table;
当然你这个必须是年月固定已知的情况

#3


select column1,column2,column3,
decode(年月,'2015-01',得分,null) "2015-01",
decode(年月,'2015-02',得分,null) "2015-02",
.....
 from table;

#4


3楼写的挺好的                        

#5


引用 2 楼 y1321735393 的回复:
select column1,column2,column3,
decode(column4,'2015-01',column5,null) "2015-01",
decode(column4,'2015-02',column5,null) "2015-02",
.....
 from table;
当然你这个必须是年月固定已知的情况


谢谢你,解决了,不过需要在decode上前加个 sum,要不还是多行,感谢

#6


引用 3 楼 lonelywyl 的回复:
select column1,column2,column3,
decode(年月,'2015-01',得分,null) "2015-01",
decode(年月,'2015-02',得分,null) "2015-02",
.....
 from table;


也谢谢你,解决了,不过需要在decode上前加个 sum,要不还是多行,感谢