首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

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

2012-01-20 
如何用sql实现这样的效果:一列数放到一行中返回?如下列情况:学生表学生id学生姓名1张三2李四....成绩单课

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

热点排行