Есть ли способ заставить запрос Oracle
вести себя так, как будто он содержит предложение MySQL limit
?
В MySQL
я могу сделать это:
select *
from sometable
order by name
limit 20,10
чтобы получить 21-й по 30-й ряды (пропустите первые 20, дайте следующие 10). Строки выбираются после order by
, поэтому они начинаются с 20-го имени в алфавитном порядке.
В Oracle
единственное, что упоминают люди, это псевдостолбец rownum
, но он оценивается до order by
, что означает:
select *
from sometable
where rownum <= 10
order by name
вернет случайный набор из десяти строк, упорядоченных по имени, что обычно не то, что я хочу. Это также не позволяет указывать смещение.