数据库中有个字段,RA 是NUMBER型的,我现在要查询其中两个最大值的两条数据,请问怎么写啊

解决方案 »

  1.   

    select ra from (select ra from test order by a desc ) where rownum<3;
      

  2.   

    select ra from test where rownum<3 order by ra desc ;
      

  3.   

    不好用啊,能否给解释一下sql语句啊,谢谢。
      

  4.   

    不好意思昨天语句里有个错误,应该是order by ra
    select ra from (select ra from 表名称 order by ra desc ) where rownum<3;
    select ra from test where rownum<3 order by ra desc ;
    是不行的,它是先选出前2两条,然后再排序,这样并不能得到最大的两个ra值,不信你可以试试
    create table test (a int);
    insert into test values(1);
    insert into test values(2);
    insert into test values(3);
    commit;
    select ra from test where rownum<3 order by ra desc ;         A
    ----------
             2
             1select ra from (select ra from 表名称 order by ra desc ) where rownum<3;
             A
    ----------
             3
             2这样写先将记录按ra字段降序排列,然后再取前两条就是你要的最大的两个ra值