问题描述
我遇到了错误:
当我运行以下ORACLE查询时:
Select "col1","col2"
from SCHEMANAME.TABLENAME
OFFSET 100 ROWS FETCH NEXT 100 ROWS ONLY
有解决方案吗?
解决方法
我的猜测是您正在运行Oracle fetch子句不可用。
典型的解决方法是使用窗口函数:
select col1,col2
from (
select t.*,row_number() over(order by id) rn
from schemaname.tablename t
) t
where rn between 101 and 200;
请注意,为了使原始查询和此查询都能产生稳定的结果,您需要一个确定性地定义行顺序的列。我假设使用id
。
如果您确实希望使用不稳定的排序方式(我不建议这样做),请在order by null
的{{1}}子句中使用over()
。