Sql数据库分页查询语句

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 ?”   第一个"?"为起始行号,第二个"?"代表
  返回记录数
时间: 2025-01-01 15:37:23

Sql数据库分页查询语句的相关文章

数据库分页查询语句数据库查询_数据库其它

先看看单条 SQL 语句的分页 SQL 吧. 方法1: 适用于 SQL Server 2000/2005 SELECT TOP 页大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) ORDER BY id 方法2: 适用于 SQL Server 2000/2005 SELECT TOP 页大小 * FROM table1 WHERE id > ( SELECT ISNULL(M

Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍

先来定义分页语句将要用到的几个参数: int currentPage ; //当前页 int pageRecord ; //每页显示记录数 以之前的ADDRESSBOOK数据表为例(每页显示10条记录): 一.SqlServe下载 分页语句 String sql = "select top "+pageRecord +" * from addressbook where id not in (select top "+(currentPage-)*pageRecor

防SQL注入:生成参数化的通用分页查询语句

前些时间看了玉开兄的"如此高效通用的分页存储过程是带有sql注入漏洞的"这篇文章,才突然想起 某个项目也是使用了累似的通用分页存储过程.使用这种通用的存储过程进行分页查询,想要防SQL注入 ,只能对输入的参数进行过滤,例如将一个单引号"'"转换成两个单引号"''",但这种做法是不安全 的,厉害的黑客可以通过编码的方式绕过单引号的过滤,要想有效防SQL注入,只有参数化查询才是最终 的解决方案.但问题就出在这种通用分页存储过程是在存储过程内部进行SQ

数据库分页查询方法

在这里主要讲解一下MySQL.SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法. 可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以方便大家查询使用. 下面就分别给大家介绍.讲解一下三种数据库实现分页查询的方法. 一. MySQL 数据库分页查询 MySQL数据库实现分页比较简单,提供了LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有

access的分页查询语句

问题描述 access的分页查询语句 access数据库里面共15000条数据 ID号1~15000 用SELECT top 10 * FROM table where ID Not IN (Select Top 10 ID from table)做分页查询 但是查询出来的结果是ID 66~75 的记录 用SELECT top 10 * FROM table查询则显示ID 56~65的记录 数据量少的时候是正常的,,,,,,能从1号开始查询.....但是数据量大了以后前面的就查不出来了 后来用了

oracle 分页查询-Oracle数据库分页查询

问题描述 Oracle数据库分页查询 分页查询语句.之前用java获取分页信息是分两步走的,首先获取想要得到的字段信息,第二部获取总记录数count(*).现在因为种种原因,就是想请教高手一下,能不能在一个sql中,查询出这些信息包括总记录数.比如 表 test 字段有id,name. select * from (select A.*,ROWNUM RN from(select * from test) A where ROWNUM<=11) where RN>=1; 这是分开写时,查询的语

数据库分页查询方法_数据库其它

可能会有人说这些网上都有,但我的主要目的是把这些知识通过我实际的应用总结归纳一下,以方便大家查询使用. 下面就分别给大家介绍.讲解一下三种数据库实现分页查询的方法. 一. MySQL 数据库分页查询 MySQL数据库实现分页比较简单,提供了LIMIT函数.一般只需要直接写到sql语句后面就行了. LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数.

oracle数据库分页查询实例小结

Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用.   分页查询格式:  代码如下 复制代码 SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21   其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句.ROWNUM <= 40和RN >= 21控制分页查询的每页的

数据库和查询语句优化

数据|数据库|优化|语句 1.参考下面的,看数据库和查询语句有没有可优化的地方 如何让你的SQL运行得更快 ---- 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显.笔者在工作实践中发现,不良的SQL往往来自于不恰当的索引设计.不充份的连接条件和不可优化的where子句.在对它们进行适当的优化后,其运行速度有了明显地提高!下面