Sql数据库分页查询语句

作者:袖梨 2022-06-29

MySQL

 --查询第10到20条数据 

 代码如下 复制代码
SELECT * FROM table_name WHERE … LIMIT 10,20;

 

SQLServer

 代码如下 复制代码

 --查询前10|10%条数据 

 SELECT TOP 10|10% * FROM table_name; 

 --查询第10到20条数据 

 SELECT TOP 10 * FROM

   (SELECT TOP 20 * FROM table_name ORDER BY id ASC) a 

   ORDER BY id DESC; 

 --使用ROW_NUMBER()分页查询第10到20条数据 

 SELECT * FROM

   (SELECT *,ROW_NUMBER() OVER(ORDER BY id) AS 'RowNumber' FROM table_name) a 

   WHERE a.RowNumber BETWEEN 10 AND 20;

 

Oracle

 代码如下 复制代码

 --查询前10条数据 

 SELECT * FROM table_name WHERE ROWNUM <= 10; 

 --查询第10到20条数据 

 SELECT * FROM

   (SELECT ROWNUM rn, a.* FROM table_name a WHERE ROWNUM <= 20) 

   WHERE rn > 10;

 

DB2

 代码如下 复制代码

 --查询第10到20条数据 

 SELECT * FROM

   (SELECT *,ROWNUMBER() OVER(ORDER BY id ASC) AS rn from table_name) AS a1 

   WHERE a1.rn BETWEEN 10 AND 20;

 

postgreSQL

 代码如下 复制代码

 --查询第10到20条数据 

 SELECT * FROM table_name LIMIT 10 OFFSET 10; 

 --offset 偏移量 10表示从第10条开始 

 --limit 共取几条 10表示本次查询10条

 

Informix

 代码如下 复制代码

 --查询第10到20条数据 

 SELECT SKIP 10 FIRST 10 * FROM table_name ORDER BY id; 

 --SKIP n,跳过n 

 --FIRST n,获取前n条记录

 

Hibernate

 代码如下 复制代码

 Query query = session.createQuery("from BeanName"); 

 // 查询第10到20条数据 

 query.setFirstResult(10); 

 query.setMaxResults(10); 

 list = query.list();


附后一数据库分页查询表

 数据库

 分页查询语句

 说明

 MySql

   "QUERY_SQL limit ?,?"             使用limit关键字,第一个"?"是起始行号,
  第二个"?"是返回条目数

 Oracle

 SELECT * FROM
 ( SELECT A.*, ROWNUM RN   FROM 
 (QUERY_SQL ) A   WHERE ROWNUM
 <= ?) WHERE RN >= ?

 结合rownum关键字,利用嵌套三层select
 语句实现。第一个"?"表示终止行号,
  第二个"?"表示其实行号

 Sql Server

 尚无通用语句  可使用top n来返回前n条记录或使用存储过程

 DB2

 假设查询语句:select t1.* from t1 order
 by t1.id; 分页语句可为:
 "select * from ( select rownumber() over
  (order by t1.id) as row_, t1.* from t1
  order by t1.id) as temp_ where row_
  between ?+1 and ?"
  返回两个"?"之间的记录

 InterBase

 “QUERY_SQL row ? to ?”   返回两个"?"之间的记录
 PostgreSQL  “QUERY_SQL limit ? offset ?”   第一个"?"为起始行号,第二个"?"代表
  返回记录数

相关文章

精彩推荐