Способы получения Top-N записей (пагинация)
Существует три способа работать с пагинацией на уровне SQL. Допустим нам надо получить строки с 10 по 20.
Способ 1. Rownum + order by
По скорости примерно одинаковы. Как-нибудь, запилю видюшку с демонстрацией.
#sql #пагинация #rowcount #аналитическиефункции #offset
Существует три способа работать с пагинацией на уровне SQL. Допустим нам надо получить строки с 10 по 20.
Способ 1. Rownum + order by
select *Способ 2. Аналитическая функция row_number
from (select rownum rn,
a.*
from (select *
from employees e
order by e.hire_date) a
where rownum < 20)
where rn >= 10;
select *Способ 3. Использование расширения SQL (c Oracle 12c).
from (select row_number() over(order by t.hire_date) rn,
t.*
from employees t
order by t.hire_date) a
where a.rn between 10 and 19;
select t.*
from employees t
order by hire_date
offset 9 rows fetch next 10 rows only;
По скорости примерно одинаковы. Как-нибудь, запилю видюшку с демонстрацией.
#sql #пагинация #rowcount #аналитическиефункции #offset
👍3