[Q]如何取得一列中第N大的值?
[A]select * from 
(select t.*,dense_rank() over (order by t2 desc) rank from t) 
where rank = &N;

解决方案 »

  1.   

    select top 1 * from table1 where ID not in(select top 1 ID from table1 order by ID desc) order by ID desc
      

  2.   

    如果是倒数第二大,就是第二小的
    select * from 
    (select t.*,dense_rank() over (order by t2 asc) rank from t) 
    where rank = 2;
      

  3.   

    to yuankena(yuankena):
    oracle好象不支持top,我的9i不可以。
      

  4.   

    如:SQL> select max(sl1) from a; MAX(SL1)
    ---------
           14
    SQL> select max(sl1) from a where sl1<>(select max(sl1) from a); MAX(SL1)
    ---------
           13
      

  5.   

    select * from (select * from tableName order by fieldName desc  ) where rownum=2
    自己试一下,我没有测试,应该是可以的。
      

  6.   

    where rownum = 2是不成立的,请查找该方面的资料,好好学习一下。
      

  7.   

    yuepengfei(凤栖梧) 的方法就可以啊,看来没分了
      

  8.   

    select max(a1) from table1 where a1<>(select max(a1) from table1);
      

  9.   

    select max(s) from (select col from table where rownum <=N order by col desc);
      

  10.   

    select max(a1) from table1 where a1<(select max(a1) from table1);