@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 Server、MySQL和Oracle在实现分页的具体语法上有所不同,但核心思想都是先定位到起始行,然后根据每页显示的记录数来选取相应数据。理解这些不同数据库的分页机制,对于高效地管理大量数据至关...
sql 分页 针对oracle mysql sqlserver 等数据库的通用类
本文将深入探讨SQL Server、MySQL和Oracle这三种主流数据库系统中的分页查询实现方式。 首先,我们来看SQL Server。SQL Server提供了一种称为"TOP"的关键字来实现分页。例如,如果我们想获取第1页(假设每页有10条...
mysql,oracle,sql server分页总结与比较
MySQL、SQL Server、Oracle 分页及 Java 分页统一接口实现 MySQL、SQL Server、Oracle 分页是关系数据库管理系统中最基本也是最常用的操作之一,而 Java 分页统一接口实现则是对数据库操作的抽象和封装。本文将对 ...
- **Sqlserver**、**Oracle**、**MySql**、**PostgreSql** 和 **SqlLite** 都提供了丰富的内置函数支持,包括数学、日期时间、字符串处理等多方面功能。 #### 五、分页 分页是数据库中常见的需求之一,不同的...
本话题主要聚焦于如何在Oracle、MySQL和SQL Server这三种主流关系型数据库中实现分页联合查询。 首先,我们来看Oracle数据库的分页查询。Oracle使用ROWNUM关键字来实现分页。例如,如果我们想获取第10到20条记录,...
在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...
### 数据库分页技术详解:MySQL、Oracle与SQL Server #### Oracle 分页 在Oracle数据库中实现分页功能,主要依赖于`ROWNUM`伪列。`ROWNUM`用于为查询结果集中的每一行分配一个唯一的编号,从1开始递增。通过控制`...
本文将详细介绍Oracle、MySQL以及SQL Server三种主流数据库系统中的分页技术,包括它们各自的实现方法和一些实用技巧。 ### 一、Oracle 分页 Oracle数据库提供了强大的功能来支持分页查询。在Oracle中,主要使用`...
本文将详细介绍Oracle、MySQL、SQL Server等常见数据库系统的分页方法。 ### MySQL分页方法 #### 1. 使用`LIMIT`子句 MySQL提供了`LIMIT`子句来实现分页查询。该子句可以接受两个参数:第一个参数为起始行号...
### 数据库分页技术详解:Oracle、SQL Server、MySQL #### 一、引言 在进行数据查询时,为了提高用户体验以及系统性能,通常需要对数据进行分页处理。不同的数据库管理系统(Database Management System,DBMS)...
### Oracle、MySQL与SQL Server 分页查询详解 在数据库应用中,分页是常见的数据处理方式之一,尤其在展示大量数据时,通过分页技术可以有效地提高系统的响应速度和用户体验。本文将详细介绍Oracle、MySQL以及SQL ...
Zhuyi.DBUtility是一个数据库操作组件,支持多种常见的关系型数据库系统,包括SQL Server、Oracle、MySQL、Access以及SQLite。这个组件的核心在于提供了一种统一的接口来简化数据库的CRUD(创建、读取、更新和删除)...
本文将基于提供的文件信息,深入探讨三种不同的分页查询方法及其在Oracle、SQL Server(这里用SQL代替)、MySQL中的实现方式,并对它们的性能进行对比分析。 #### 分页方案一:利用Not In和SELECT TOP分页 **基本...
不同的数据库管理系统(DBMS)有不同的分页查询语句,下面对 Oracle、DB2、SQL Server、MySQL、Access 等数据库的分页查询语句进行了整理。 SQL Server 分页查询 SQL Server 中有两种分页查询方法: 1. 第一种...
3. **分页**:MySQL常使用`LIMIT`和`OFFSET`进行分页,而SQL Server和Oracle使用`ROW_NUMBER()`窗口函数或`ROWNUM`。 4. **内置函数**:每个数据库都有自己的内置函数集合,例如,Oracle的`DBMS_OUTPUT.PUT_LINE`在...
它在 Oracle 数据库中有着广泛的应用场景,尤其是在需要对查询结果进行分页显示、排序或者统计特定范围内的记录时尤为重要。本文将详细介绍 Oracle 中 ROWNUM 的使用方法,并与 SQL Server 中相应的功能进行对比分析...
《SQLServer,MySQL,Oracle三者的区别》 在IT领域,数据库的选择至关重要,因为它直接影响到系统的性能、稳定性和可扩展性。本文将对比分析Oracle、SQL Server和MySQL这三大主流数据库系统,帮助你了解它们之间的...
Oracle 12c引入了`FETCH NEXT`和`OFFSET`,这使得Oracle的分页语法与MySQL和SQL Server等其他数据库系统更加兼容: ```sql SELECT * FROM your_table OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY; ``` 这种方法避免了...