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