Skip to content
CodingDiary
返回

关于 MSSQL/MYSQL/ORACLE 的分页语句

编辑页面
导读

MSSQL 用 TOP,MySQL 用 LIMIT,Oracle 用 ROWNUM——三大数据库的分页语法完全不同。本文整理了各数据库查询前 N 条记录和分页查询的标准写法,直接复制就能用。特别是 Oracle 的三层嵌套结构,不熟悉的人很容易写错。

MSSQL 的前 N 条记录

--查询前 N 条记录,可以改成需要的数字
SELECT TOP N * FROM TABLE_NAME

MSSQL 的分页语句,第 N 条到第 M 条记录

SELECT TOP N T.* FROM ( SELECT TOP M * FROM TABLE_NAME ORDER BY COLUMN_NAME ) T ORDER BY T.COLUMN_NAME DESC

MYSQL 的前 N 条记录

-- 通常0是可以省略的,直接写成 LIMIT N。0代表从第0条记录后面开始,也就是从第一条开始
SELECT * FROM TABLE_NAME LIMIT 0,N

MYSQL 的分页语句,第 N 条开始,每页 M 条

SELECT * FROM TABLE_NAME LIMIT N,M

ORACLE 的前 N 条记录

-- N 为前多少条记录
SELECT * FROM TABLE_NAME WHERE ROWNUM < N

ORACLE 的分页语句,第 N 条到第 M 条记录

-- 这句就是从 N 到 M 的数据,分为三层结构
SELECT * FROM ( SELECT T.*,T.ROWNUM RN FROM ( SELECT * FROM TABLE_NAME ) T WHERE T.ROWNUM < M ) WHERE RN > N

编辑页面
分享到:

上一篇
OSX 常用软件汇总
下一篇
ElasticSearch 笔记