读书人

怎么用sql实现这样的效果:一列数放到

发布时间: 2012-01-20 18:53:53 作者: rapoo

如何用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(+)

读书人网 >oracle

热点推荐