问题如标题,
表结构
 STUDNO         
 STUDNAME       
 STUDSCORE    
求助各位Oracle下要怎么写呢?先谢谢啦!  

解决方案 »

  1.   

    insert into newtable
    select studno,studname,studscore
    from(select t.*,row_number()over(order by studscore desc)rn
      from oldtable t)
    where rn<=20
      

  2.   

    SELECT * FROM
      (SELECT studno, studname, studscore, rownum rn FROM
          (SELECT studno, studname, studscore
             FROM students
            ORDER BY studscore)
      )
     WHERE rn < 21;
      

  3.   


    能不能给我解释下这句啊 ?row_number()over(order by studscore desc)
      

  4.   

    分析函数
    按studscore 列desc是降序排列,赋序号
    查询出排名前20条数据,插入新表
      

  5.   

    谢谢楼上的,又学到新东西,但出现下面的错误出错:
    insert into Top20StudScore
                *
    第 1 行出现错误:
    ORA-00942: 表或视图不存在好像是Oracle此时不能自己自动建表啊,要怎么改呢?
      

  6.   

    ...
    原来新表还没建好啊
    改成
    create table newtable as 
    select studno,studname,studscore 
    from(select t.*,row_number()over(order by studscore desc)rn 
      from oldtable t) 
    where rn <=20