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 |
结合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 ?” | 第一个"?"为起始行号,第二个"?"代表 返回记录数 |