如何在oracle sql中只显示20项结果?

时间:2014-11-27 04:20:45

标签: sql database oracle top-n

是否可以只显示整个结果中的20项? 我知道一个查询" rownum> = 20"但这只会使sql仅检查表中的前20行。 但我希望sql检查我的整个表并只显示最多的20个条目。

要明确的是,我有一个表格,其中有职位描述,例如Title,description,agency,salary_min,salary max。我想展示20个最高薪的工作。

4 个答案:

答案 0 :(得分:4)

“最高”的20个条目表明了一种情况。你会做这样的事情:

select t.*
from (select t.*
      from table t
      order by highestcol desc
     ) t
where rownum <= 20;

如果您使用的是Oracle 12g或更新版本,则可以改为使用fetch first子句:

select t.*
from table t
order by highestcol desc
fetch first 20 rows only;

答案 1 :(得分:1)

首先排序(依次排序),然后使用rownum函数。

答案 2 :(得分:1)

select * from  
( select * 
  from emp 
  order by field ) 
where ROWNUM <= 20;

答案 3 :(得分:1)

select a.fld1, a.fld2 
from 
  ( select fld1, fld2
    from mytable 
    order by 1 desc) a
where rownum <21;

这是我认为你要求做的一种方式。其他一些海报可以提供其他方式。