`
peizhiinfo
  • 浏览: 1421076 次
文章分类
社区版块
存档分类
最新评论

Oracle、SQL server、MySQL数据库中分页查询的SQL语句

 
阅读更多
SQL Server SQL语句查询分页数据的解决方案:


要求选取 tbllendlist 中 第3000页的记录,每一页100条记录

方法1:

  1. selecttop100*fromtbllendlist
  2. wherefldserialNonotin
  3. (
  4. selecttop300100fldserialNofromtbllendlist
  5. orderbyfldserialNo
  6. )
  7. orderbyfldserialNo

方法2:

  1. SELECTTOP100*
  2. FROMtbllendlist
  3. WHERE(fldserialNo>
  4. (SELECTMAX(fldserialNo)
  5. FROM(SELECTTOP300100fldserialNo
  6. FROMtbllendlist
  7. ORDERBYfldserialNo)AST))
  8. ORDERBYfldserialNo

方法1执行速度比较快!

不过,这种做法还是很麻烦,强烈期待微软发明新的分页的SQL语句.


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

My sql数据库

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

SQL Server SQL语句查询分页数据的解决方案:


要求选取 tbllendlist 中 第3000页的记录,每一页100条记录

方法1:

  1. selecttop100*fromtbllendlist
  2. wherefldserialNonotin
  3. (
  4. selecttop300100fldserialNofromtbllendlist
  5. orderbyfldserialNo
  6. )
  7. orderbyfldserialNo

方法2:

  1. SELECTTOP100*
  2. FROMtbllendlist
  3. WHERE(fldserialNo>
  4. (SELECTMAX(fldserialNo)
  5. FROM(SELECTTOP300100fldserialNo
  6. FROMtbllendlist
  7. ORDERBYfldserialNo)AST))
  8. ORDERBYfldserialNo

方法1执行速度比较快!

不过,这种做法还是很麻烦,强烈期待微软发明新的分页的SQL语句.


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

My sql数据库

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


要求选取 tbllendlist 中 第3000页的记录,每一页100条记录

方法1:

  1. selecttop100*fromtbllendlist
  2. wherefldserialNonotin
  3. (
  4. selecttop300100fldserialNofromtbllendlist
  5. orderbyfldserialNo
  6. )
  7. orderbyfldserialNo

方法2:

  1. SELECTTOP100*
  2. FROMtbllendlist
  3. WHERE(fldserialNo>
  4. (SELECTMAX(fldserialNo)
  5. FROM(SELECTTOP300100fldserialNo
  6. FROMtbllendlist
  7. ORDERBYfldserialNo)AST))
  8. ORDERBYfldserialNo

方法1执行速度比较快!

不过,这种做法还是很麻烦,强烈期待微软发明新的分页的SQL语句.


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

My sql数据库

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

分享到:
评论

相关推荐

    几条常见的数据库分页SQL 语句

    几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。

    Oracle,SQl,MySql实现分页查询

    分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句 分页方案一:(利用Not In和SELECT TOP分页) 效率次之,需要拼接SQL语句 分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为...

    数据库分页SQL语句实现

    3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现

    几种数据库常见分页sql

    几种数据库常见分页sql 我们在编写MIS系统和Web应用程序等系统时,都涉及到与数据库...根据自己使用过的内容,把常见数据库SQL Server,Oracle和MySQL的分页语句,从数据库表中的第M条数据开始取N条记录的语句总结如下:

    oracle mysql SQL server分页

    这里只是总结了MySQL,SQL Server,Oracle分页语句。供大家参考

    mysql oracle和sqlserver分页查询实例解析

    最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习….. (一)、mysql的分页查询 mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式: ...

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

    主要介绍了Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍 的相关资料,需要的朋友可以参考下

    三大数据库的分页语句

    该文档详细描述了三大数据库的分页sql语句。

    分页SQL语句

    SQL Server 、MySQL 、Oracle数据库分页SQL语句

    oracle,mysql,SqlServer三种数据库的分页查询的实例

    MySQL数据库实现分页比较简单,提供了 LIMIT函数。一般只需要直接写到sql语句后面就行了。LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第...

    java连接数据库的分页语句

    主要介绍了java连接oracle、sqlserver和mysql语句,以及连接这些数据库的分页语句

    SQL语句在MySql Oralce 中的实例运用

    SQL的DDL DML 语句在MySql Oracle 数据库的整合,轻松掌握sql 语句在不同数据库之间的差异,其中还有一些经典的sql 语句实例 如 分页查询 横竖表的转换。

    ORACLE、MYSQL、SQLSERVER数据分页查询

    看过此博文后Oracle、MySql、SQLServer 数据分页查询,在根据公司的RegionRes表格做出了  SQLserver的分页查询语句: SELECT DISTINCT TOP 500 rr.ID AS id ,rr.strName AS name ,rr.nType AS res_type ,...

    Page_SQL(Sqlserver_mysql_oracle_postgre).rar_PAGE_SQL_page

    公司在项目开发中使用的分页查询语句,分别有针对SqlServer,Mysql,Orcle与PostgreSQL的查询语句

    php mssql 数据库分页SQL语句

    根据自己使用过的内容,把常见数据库Sql Server,Oracle和MySQL的分页语句,从数据库表中的第M条数据开始取N条记录的语句总结如下: SQL Server 从数据库表中的第M条记录开始取N条记录,利用Top关键字:注意如果...

    PL/SQL中编写Oracle数据库分页的存储过程

    由于需要返回查询出来的结果集,需要在PL/SQL中创建一个package,这个包里面定义一个refcursor类型,用于记录sql语句查询出来的结果集。创建包的代码如下: create or replace package pagingPackage as type ...

    Sqlserver2000经典脚本

    -列车车次查询.sql │ │ 3.6.2 字符串在编号查询中的应用示例及常见问题.sql │ │ 3.6.3 动态参数的存储过程示例.sql │ │ 3.6.4 动态他Transact-SQL语句处理中的常见问题演示.sql │ │ 3.7.3 ...

    Mybatis PageHelper分页插件是一个应用于Mybatis中的分页插件系统.rar

    `在mysql中,分页的sql是使用limit来做的。...PageHelper会在mybatis执行sql前进行拦截,从ThreadLocal中取出分页参数,修改当前执行的sql语句,添加分页sql,最后执行了添加了分页的sql语句,实现分页查询

Global site tag (gtag.js) - Google Analytics