是否可以只显示整个结果中的20项? 我知道一个查询" rownum> = 20"但这只会使sql仅检查表中的前20行。 但我希望sql检查我的整个表并只显示最多的20个条目。
要明确的是,我有一个表格,其中有职位描述,例如Title,description,agency,salary_min,salary max。我想展示20个最高薪的工作。
答案 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;
这是我认为你要求做的一种方式。其他一些海报可以提供其他方式。