sql分页查询语句常用方法

发布时间:2020-06-11编辑:脚本学堂
分享下sql server分页查询语句的实现方法,分为sql server与oracle、mysql分页查询代码的例子,需要的朋友参考下。

常见数据库sql server,oracle和mysql分页语句,从数据库表中的第m条数据开始取n条记录的语句。

一、sql server分页查询语句
从数据库表中的第m条记录开始取n条记录,利用top关键字:注意假如select语句中既有top,又有order by,则是从排序好的结果集中选择:
 

复制代码 代码示例:
select *
from ( select top n *
from (select top (m n - 1) * from 表名称 order by 主键 desc) t1 ) t2
order by 主键 asc

例如,从表sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
 

复制代码 代码示例:
select *
from ( select top 20 *
from (select top 29 * from sys_option order by sys_id desc) t1) t2
order by sys_id asc

二、oralce数据库分页查询语句
从数据库表中第m条记录开始检索n条记录
 

复制代码 代码示例:
select *
from (select rownum r,t1.* from 表名称 t1 where rownum < m n) t2
where t2.r >= m

例如,从表sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
 

复制代码 代码示例:
select *
from (select rownum r,t1.* from sys_option where rownum < 30 ) t2
where t2.r >= 10

三、mysql数据库 分页查询语句
my sql数据库最简单,是利用mysql的limit函数,limit [offset,] rows从数据库表中m条记录开始检索n条记录的语句为:
 

复制代码 代码示例:
select * from 表名称 limit m,n


例如,从表sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
 

复制代码 代码示例:
select * from sys_option limit 10,20