半个月前,同事问我各种数据库分页的sql会写么,我说mysql知道,oracle的想不起来了,于是在这个闲的蛋疼,又不想打游戏睡觉的夜晚,写篇笔记吧。
参考链接如下,侵删:
oracle : ORACLE分页查询SQL语法——最高效的分页
sqlsererl不怎么用,数据迁移的时候会接触。
Sqlserver分页查询语句 留贴学习
mysql,等其他数据库暂且按下不表
正文
oracle 数据库 分页靠个关键字 ROWNUM,这货是你查询结果的序列号,并且常用于分页。
至于如何快速高效的分页,上贴有详细说明,这里不多表,主要写下一种常用的高效的分页方式
SELECT *
FROM (SELECT a.*, ROWNUM rn
FROM (SELECT *
FROM table_name) a
WHERE ROWNUM <= 100)
WHERE rn >0
为什么高效,牵扯到一个词CBO--基于代价的优化器,详情见链接。
以上。