如果是8i
select * from (
select rownum id,t.* from table t order by 工资) a
where a.id>4 
and 
rownum<=1

解决方案 »

  1.   

    select 姓名,min(工资) from table
    where rownum<5
    order by 工资;
      

  2.   

    如果就是列出一个的话
    select username, salary from
    (select rownum id, username, salary from 
    (select * from test_y order by salary desc) where rownum<=5) a where a.id=5;
      

  3.   

    如果是8i
    select * from (
    select rownum id,t.* from table t order by 工资 desc) a
    where a.id>4 
    and 
    rownum<=1
      

  4.   

    sorry,刚才把问题理解错啦,这条SQL一定不会错了,我试过了,用9I里的EMP表测试的!!
    select * from emp
     where sal=(
     select sal from (select rownum id, a.* from (select distinct sal from emp order by sal desc) a) where id=5);
      

  5.   

    楼上的是对的,而且可以选出相同的多条记录。
    另外如果第五的概念,包括相同工资在内的话,可以把distinct去掉
    select * from emp
     where sal=(
     select sal from (select rownum id, a.* from (select sal from emp order by sal desc) a) where id=5);