原表如下:进行行转列
要求转换后效果如下:
1
2
3
4
5
6
7
8
|
name course score 张三 语文 81.00 张三 数学 75.00 李四 语文 81.00 李四 数学 90.00 王五 语文 81.00 王五 数学 100.00 王五 英语 90.00
|
1
2
3
4
|
姓名 语文 数学 英语 张三 81 75 李四 81 90 王五 81 90 100 |
1
2
3
4
5
6
7
8
9
10
11
|
select * from tb_student; --思路: 使用 decode +分组 select name, decode(course, '语文' , score, null ) "语文" from tb_student; --所有课程 select distinct course from tb_student; --拼接sql语句 select name, decode(course, '语文' , score, null ) "语文" , decode(course, '数学' , score, null ) "数学" , decode(course, '英语' , score, null ) "英语" from tb_student; |