`

分页显示(sqlserver,mysql,oracle)

阅读更多
@pagesize*page表示:分页大小×页数

一.使用mysql控制:
Sql代码

   1. select * from user  
   2. order by Host  
   3. limit m, n  

select * from user
order by Host
limit m, n



结果返回的是第m+1行到第n行的数据集。
比如
Sql代码

   1. select * from user  
   2. order by Host  
   3. limit 1, 5  

select * from user
order by Host
limit 1, 5

返回的是第2行到第5行的数据集

二.使用sqlserver
Sql代码

   1. 1. 
   2. SELECT TOP @pagesize * FROM tableName WHERE id NOT IN 
   3. ( 
   4.     SELECT TOP @pagesize*(@page-1) id  FROM tableName ORDER BY id 
   5. )  
   6. ORDER BY id 
   7.  
   8. 2. 
   9. SELECT *  FROM  
  10. ( 
  11.      SELECT TOP @pagesize * from  
  12.      ( 
  13.          SELECT TOP @pagesize*@page *  FROM table1 ORDER BY id 
  14.       ) a ORDER BY id DESC 
  15. ) b ORDER BY id 

1.
SELECT TOP @pagesize * FROM tableName WHERE id NOT IN
(
    SELECT TOP @pagesize*(@page-1) id  FROM tableName ORDER BY id
)
ORDER BY id

2.
SELECT *  FROM
(
     SELECT TOP @pagesize * from
     (
         SELECT TOP @pagesize*@page *  FROM table1 ORDER BY id
      ) a ORDER BY id DESC
) b ORDER BY id






      可以发现sort的字段建立了index的条件下,第1个方法快很多,特别是查到后面页数的时候.原因就在于第2个方法中,第一次做了select 后,再做自查询时,index已经没有了.sort就会非常影响性能了



三.使用oracle 


Sql代码

   1. SELECT * FROM  
   2. ( 
   3.   SELECT A.*, ROWNUM RN  
   4.   FROM (SELECT * FROM TABLE_NAME) A  
   5.   WHERE ROWNUM <= @pagesize*page 
   6. ) 
   7. WHERE RN >= @pagesize*(page-1) 

SELECT * FROM
(
  SELECT A.*, ROWNUM RN
  FROM (SELECT * FROM TABLE_NAME) A
  WHERE ROWNUM <= @pagesize*page
)
WHERE RN >= @pagesize*(page-1)

    其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。


注:网上整理备忘
原文:

        1.[url]http://blog.163.com/li_ming025@126/blog/static/3691193820087753952460/
[/url]
        2.http://i.mop.com/fdxq520/blog/2007/06/06/4319491.html
分享到:
评论

相关推荐

    sql分页(sqlserver,mysql,oracle )

    总结而言,虽然SQL Server、MySQL和Oracle在实现分页的具体语法上有所不同,但核心思想都是先定位到起始行,然后根据每页显示的记录数来选取相应数据。理解这些不同数据库的分页机制,对于高效地管理大量数据至关...

    sql 分页 oracle mysql sqlserver

    sql 分页 针对oracle mysql sqlserver 等数据库的通用类

    sqlserver,mysql,oracle三种数据库的分页查询

    本文将深入探讨SQL Server、MySQL和Oracle这三种主流数据库系统中的分页查询实现方式。 首先,我们来看SQL Server。SQL Server提供了一种称为"TOP"的关键字来实现分页。例如,如果我们想获取第1页(假设每页有10条...

    mysql分页,oracle分页,sql server三种数据库实现分页

    mysql,oracle,sql server分页总结与比较

    mysql、sqlserver、oracle分页,java分页统一接口实现

    MySQL、SQL Server、Oracle 分页及 Java 分页统一接口实现 MySQL、SQL Server、Oracle 分页是关系数据库管理系统中最基本也是最常用的操作之一,而 Java 分页统一接口实现则是对数据库操作的抽象和封装。本文将对 ...

    Sqlserver、Oracle、MySql、PostgreSql、SqlLite数据库差异

    - **Sqlserver**、**Oracle**、**MySql**、**PostgreSql** 和 **SqlLite** 都提供了丰富的内置函数支持,包括数学、日期时间、字符串处理等多方面功能。 #### 五、分页 分页是数据库中常见的需求之一,不同的...

    用于oracle,mysql,sqlserver,数据库分页联合查询

    本话题主要聚焦于如何在Oracle、MySQL和SQL Server这三种主流关系型数据库中实现分页联合查询。 首先,我们来看Oracle数据库的分页查询。Oracle使用ROWNUM关键字来实现分页。例如,如果我们想获取第10到20条记录,...

    Oracle Sql语句转换成Mysql Sql语句

    在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...

    mysql,oracle,sqlserver分页

    ### 数据库分页技术详解:MySQL、Oracle与SQL Server #### Oracle 分页 在Oracle数据库中实现分页功能,主要依赖于`ROWNUM`伪列。`ROWNUM`用于为查询结果集中的每一行分配一个唯一的编号,从1开始递增。通过控制`...

    oracle mysql sqlserver分页

    本文将详细介绍Oracle、MySQL以及SQL Server三种主流数据库系统中的分页技术,包括它们各自的实现方法和一些实用技巧。 ### 一、Oracle 分页 Oracle数据库提供了强大的功能来支持分页查询。在Oracle中,主要使用`...

    Oracle,mysql,sqlserver等各种数据库的分页方法

    本文将详细介绍Oracle、MySQL、SQL Server等常见数据库系统的分页方法。 ### MySQL分页方法 #### 1. 使用`LIMIT`子句 MySQL提供了`LIMIT`子句来实现分页查询。该子句可以接受两个参数:第一个参数为起始行号...

    数据库分页大全,oracle,sqlserver,mysql

    ### 数据库分页技术详解:Oracle、SQL Server、MySQL #### 一、引言 在进行数据查询时,为了提高用户体验以及系统性能,通常需要对数据进行分页处理。不同的数据库管理系统(Database Management System,DBMS)...

    oracle mysql SQL server分页

    ### Oracle、MySQL与SQL Server 分页查询详解 在数据库应用中,分页是常见的数据处理方式之一,尤其在展示大量数据时,通过分页技术可以有效地提高系统的响应速度和用户体验。本文将详细介绍Oracle、MySQL以及SQL ...

    (sqlserver/oracle/mysql/access/sqlite)数据库操作组件Zhuyi.DBUtility

    Zhuyi.DBUtility是一个数据库操作组件,支持多种常见的关系型数据库系统,包括SQL Server、Oracle、MySQL、Access以及SQLite。这个组件的核心在于提供了一种统一的接口来简化数据库的CRUD(创建、读取、更新和删除)...

    Oracle,SQl,MySql实现分页查询

    本文将基于提供的文件信息,深入探讨三种不同的分页查询方法及其在Oracle、SQL Server(这里用SQL代替)、MySQL中的实现方式,并对它们的性能进行对比分析。 #### 分页方案一:利用Not In和SELECT TOP分页 **基本...

    数据库分页查询整理(oracle、mysql、SqlServer、access、db2等)

    不同的数据库管理系统(DBMS)有不同的分页查询语句,下面对 Oracle、DB2、SQL Server、MySQL、Access 等数据库的分页查询语句进行了整理。 SQL Server 分页查询 SQL Server 中有两种分页查询方法: 1. 第一种...

    数据库迁移及区别比较(Oracle,Sql Server,MySql).docx

    3. **分页**:MySQL常使用`LIMIT`和`OFFSET`进行分页,而SQL Server和Oracle使用`ROW_NUMBER()`窗口函数或`ROWNUM`。 4. **内置函数**:每个数据库都有自己的内置函数集合,例如,Oracle的`DBMS_OUTPUT.PUT_LINE`在...

    oracle rownum 的使用 和sqlserver有区别的!

    它在 Oracle 数据库中有着广泛的应用场景,尤其是在需要对查询结果进行分页显示、排序或者统计特定范围内的记录时尤为重要。本文将详细介绍 Oracle 中 ROWNUM 的使用方法,并与 SQL Server 中相应的功能进行对比分析...

    SQLServer,MySQL,Oracle三者的区别.pdf

    《SQLServer,MySQL,Oracle三者的区别》 在IT领域,数据库的选择至关重要,因为它直接影响到系统的性能、稳定性和可扩展性。本文将对比分析Oracle、SQL Server和MySQL这三大主流数据库系统,帮助你了解它们之间的...

    mySql与oracle分页技术

    Oracle 12c引入了`FETCH NEXT`和`OFFSET`,这使得Oracle的分页语法与MySQL和SQL Server等其他数据库系统更加兼容: ```sql SELECT * FROM your_table OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY; ``` 这种方法避免了...

Global site tag (gtag.js) - Google Analytics