Есть ли способ заставить запрос 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
вернет случайный набор из десяти строк, упорядоченных по имени, что обычно не является тем, что я хочу. Он также не позволяет указывать смещение.