如何用sql实现这样的效果:一列数放到一行中返回?
如下列情况:
学生表
学生id 学生姓名
1 张三
2 李四
. .
. .
成绩单
课程 分数 学生id
语文 80 1
数学 90 1
语文 85 2
数学 95 2
. . .
. . .
查询结果
学生id 学生姓名 语文 数学
1 张三 80 90
2 李四 85 95
. . . .
------解决方案--------------------写得够详细的了,把表名和相应字段替换,这样就行:
select
学生表.学生id,学生表.学生姓名,成绩单.语文,成绩单.语文
from 学生表,
(select 学生id,max(decode(课程, '语文 ',分数,null)) as 语文,max(decode(课程, '数学 ',分数,null)) as 数学,
from 成绩单
group by 学生id
) 成绩单
where 学生表.学生id = 成绩单.学生id(+)