Как отобразить только 20 пунктов результата в Oracle OCL?
Можно ли отобразить только 20 пунктов всего результата? Я знаю о запросе "rownum>=20", но это только делает проверку SQL только первые 20 строк в таблице. Но я хочу, чтобы sql проверил всю мою таблицу и отображал только самые высокие 20 записей.
Чтобы было ясно, у меня есть таблица с описанием работы, как название, описание, агентство, salary_min, оклад макс. Я хочу показать 20 самых высокооплачиваемых рабочих мест.
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;
select a.fld1, a.fld2
from
( select fld1, fld2
from mytable
order by 1 desc) a
where rownum <21;
Это один из способов сделать то, что, как я думаю, вы просили. Есть и другие способы, которыми могут предоставить другие постеры.
Сначала отсортируйте (order by), а затем используйте функцию rownum.
select * from
( select *
from emp
order by field )
where ROWNUM <= 20;