2021年9月

事情是这样的, 在项目使用中我们经常需要用到分页查询的功能, 但是Oracle直接分页查询在存在排序的情况下会出现分页错乱的情况

怎么解决呢??
-- 原始SQL
SELECT  FROM XXXX WHERE A='B' ORDER BY ID LIMIT 0, 100
-- 改造后
select * from (select oracleB.*, rownum rowno from (
    -- 这里其实就是把原始SQL的分页去掉, 只保留排序, 让分页在外面
    SELECT  FROM XXXX WHERE A='B' ORDER BY ID
) oracleB where rownum <= 100) oracleC where oracleC.rowno > 0