【Oracle】从12c开始支持的Oralce新分页方案

前篇:https://www.cnblogs.com/heyang78/p/11830159.html

新方案:

select * from emp order by id offset 100 rows fetch next 10 rows only

业务查询语句:select * from emp order by id 

100:起始位置

10:页容量

 

传统分页方案:
select * from (select a.*,rownum as rn from (select * from emp order by id) a where rownum<=111 ) b where b.rn>100

业务查询语句:select * from emp order by id 

111:中止位置

100:起始位置

 

据有限实验,目前的简单sql两种方案效率相当,以后有新发现再行更新。

END

 2021年11月7日增补

将此分页语句写成函数就是:

复制代码
public abstract class BaseMapperSql {
    protected String getPagedSql(String realSql,int start,int end) {
        StringBuilder sb=new StringBuilder();
        
        sb.append(" select * from ( select a.*,rownum as rn from (");
        sb.append(realSql);
        sb.append(" ) a where rownum<="+end);
        sb.append(" ) b where b.rn>"+start);
        
        return sb.toString();
    }
}
复制代码

2021年11月7日

posted @   逆火狂飙  阅读(156)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2019-09-26 最简SpringBoot程序制法
2017-09-26 【Canvas】逐像素在canvas中显示一张图片
2017-09-26 【Canvas与图标】蓝色数据库图标
2017-09-26 【Canvas与诗词】什么力也瞬灭不了火炭般的眼睛...
2017-09-26 【Canvas与图标】正方形牛皮纸文件袋图标
2017-09-26 【Canvas与图标】蓝色三角函数图标(120*120)
2017-09-26 【Canvas与技法】绘制简化“美元”标志
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东
点击右上角即可分享
微信分享提示