如下列情况:学生表学生id    学生姓名1         张三
2         李四
.         .
.         .成绩单课程     分数     学生id语文     80       1
数学     90       1
语文     85       2
数学     95       2
.        .        .
.        .        .查询结果学生id   学生姓名    语文     数学1        张三        80       90
2        李四        85       95
.        .           .        .

解决方案 »

  1.   

    写得够详细的了,把表名和相应字段替换,这样就行:select 
    学生表.学生id,学生表.学生姓名,成绩单.语文,成绩单.语文
    from 学生表,
    (select 学生id,max(decode(课程,'语文',分数,null)) as 语文,max(decode(课程,'数学',分数,null)) as 数学,
    from 成绩单
    group by 学生id
    ) 成绩单 
    where 学生表.学生id = 成绩单.学生id(+)