select 姓名,成绩 
from 成绩表 
 where rownum <4
 order by 成绩
好像可以不过
如果这样不行的话,你可能要声明一个游标,这样才能解决吧^_^祝你好运

解决方案 »

  1.   

    这还不简单??
    select * from
     (select rownum  aa, * from 
        (select 姓名,成绩 from 成绩表  order by 成绩 desc ) aa
     ) bb where aa<4
      

  2.   

    这就 6k?? 什么公司啊??上面写错了!表名称和字段名称重复!
    select * from
     (select rownum  shunxu, * from 
        (select 姓名,成绩 from 成绩表  order by 成绩 desc ) aa
     ) bb where shunxu<4
      

  3.   

    如果用sql server ,语句又怎么写呢?
      

  4.   

    select * from (select * from 成绩表 order by 成绩 desc) where rownum<4
      

  5.   

    select top 4 * from  成绩表 order by 成绩 desc
      

  6.   

    select * from (selecct 姓名,成绩,rank() over(partition by 姓名 order by 成绩 desc) rk from table_name) where rk<=3;
      

  7.   


    beckhambobo对over的用法很熟啊,那天给大家介绍一下呗