原表如下:进行行转列
要求转换后效果如下:
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;
|