select * from tablename a
where 学号 in (
select top 3 学号 from tablename
where 班级=a.班级
order by 成绩 desc
)

解决方案 »

  1.   

    如果要我用Java连库 我能写出来 可是用SQL怎么写啊
    用Java可以先分组查询一下有几个班级 把班级名称写到数组里面 在通过班级名称去查询该班级的前三名成绩 我用SQL写 怎么也只有一个班级的前三名显示
    唉 SQL学的就是不行 我试了一个早上了 急切希望高手来解决
      

  2.   

    select 姓名,性别,年龄,班级,学号,成绩
    from tablename a
    where 学号 in (select top 3 学号 from tablename b group by  a.班级 = b.班级  
    group by 成绩)