我有一个程序可以根据某些条件和特定顺序返回多行。这些行被分成几页(每页 50 行)。如何从具有某些特定行的页面中检索所有行。我创建了一个查询来完成这项工作,但它没有优化并且对性能有很大的影响。请帮助我优化它或提供替代方案:
select *
from
(
select file_id, row_number() over (order by rownum) rn
from my_table
)
where trunc(rn/50) = (
select trunc(rn/50) from
(select t.*, rownum rn from my_table t)
where file_id = 29987);