原文:http://blog.sina.com.cn/s/blog_4c925dca0100jvpd.html
对于web上实现上翻页功能,阿堂前面在新浪博客(http://blog.sina.com.cn/heyitang)和阿堂的qq空间上都有详细介绍(我已经写过三遍關于各种情况下的博文),我这里就不再重复介绍了,有兴趣的朋友可以去我的博客上参考相关文章!
今天,阿堂所要说的,对于目前web上使用的三大主流数据库,oracle,sql server,mysql中通过sql语句来达到定制显示我们需要的记录数,如我要显示业务sql中的,第11行到20行的记录,如果我们能在sql语句中,做到了这一点,在web上实现分页,就是一件很轻松的事情了,所以,阿堂下面主要就是对这三种主流数据库的对应的sql的写法进行总结了!如果,朋友们认真体会,阿堂写的这遍文章的话,完全就可以自己来写个通用的翻页封装类了!(朋友们如果是想更详细的了解sql语句,如何在web上实现分页更详细的过程,请参考阿堂上面写的几遍文章即可,如有任何问题,欢迎给阿堂留言,我会及时进行解答的!)
第一种情况 Oralce
如
select * from(
select my_table.*, rownum as my_rownum from
(
(业务sql语句) my_table
where rownum<=20
) where my_rownum>=11
)
说明:这里主要利用了oracle的rownum的功能
测试代码
select * from
(
select my_table.*, rownum as my_rownum from
(
select * from (
select lot.sku,lot.storerkey storer,to_char(lotattr.lottable05,'YYYY-MM-DD hh24:mi:ss') receipt_date,
sku.descr,trunc(sysdate-lotattr.lottable05) as again,
sum(lot.qty-lot.qtyallocated) as qty,
case lotattr.lottable09 when 'O' then '合格'
when 'I' then '待检'
when 'H' then '不合格'
end as status,
getunitofpackwh9(pack.packdescr) as Unit
from wh9.lot lot,
wh9.Lotattribute lotattr,
wh9.sku sku,
wh9.pack pack
where lot.lot = lotattr.lot
AND lot.sku = sku.sku
AND lot.storerkey = sku.storerkey
AND lotattr.lottable01 = pack.packkey
AND lot.qty-lot.qtyallocated>0
group by lot.sku,lot.storerkey,to_char(lotattr.lottable05,'YYYY-MM-DD hh24:mi:ss'),sku.descr,
trunc(sysdate-lotattr.lottable05),
case lotattr.lottable09 when 'O' then '合格'
when 'I' then '待检'
when 'H' then '不合格'
end,getunitofpackwh9(pack.packdescr)
) where again>1 order by receipt_date desc,status desc,again desc
) my_table
where rownum<=20
)
where my_rownum >=11
测试效果图
第二种情况 sql server
如
//查询第11行到第20行记录
select top 10 * from [表名] where [主键] not in (select top 10 [主键] from [表名] order by
[排序字段及排序方法]) order by [排序字段及排序方法]
说明:这里是利用了主键,如果是多表关联时,上面的 主键选能唯一标识该记录行的字段即可
测试代码
select top 10 * from web_t_booking
where order_no not in (select top 10 order_no from web_t_booking order by order_no desc)
order by order_no desc
测试效果图
第三种情况 mysql
我们可以利用MySQL中Select支持的一个子句——LIMIT——来完成这项功能。
LIMIT可以实现top N查询,也可以实现M至N(某一段)的记录查询,具体语法如下:
Select * FROM MYTABLE
order BY AFIELD
LIMIT offset, recnum
其中offset为从第几条(M+1)记录开始,recnum为返回的记录条数。
例:
select * from mytable
order by afield
limit 10, 10
即意为从第11条记录开始的10条记录。
测试代码
select * from address
order by id
limit 10, 10
测试效果图
分享到:
相关推荐
"Oracle数据库迁移到SQL Server" 本文将详细讲解如何使用Microsoft SQL Server Migration Assistant for Oracle.exe(微软数据库迁移工具)将Oracle数据库迁移到SQL Server。该工具可以帮助用户快速、安全地将...
SQL SERVER 连接 Oracle 数据库几种方法 在实际开发中,我们经常需要在 SQL Server 中连接 Oracle 数据库,以便实现数据交换和集成。那么,如何在 SQL Server 中连接 Oracle 数据库呢?下面我们将介绍几种常见的...
Oracle数据库和MySQL数据库是两种广泛使用的数据库管理系统,它们在数据存储、查询语法、数据库结构以及管理方式上存在显著差异。"Oracle数据库sql转换mysql数据库工具" 提供了解决这一问题的解决方案,允许用户将...
在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...
解决oracle sqldeveloper无法连接mysql、SQLServer问题,sqlDeveloper是ORACLE数据库开发工具,自带的是无法连接MS SQL Server以及mysql的,想连接的话需要第三方工具。 使用方法: 解压出来后将2个jar放入jlib...
Oracle、SQL Server和MySQL是三大主流的关系型数据库管理系统(RDBMS),它们在功能、性能、安全性、许可证费用以及适用场景上都有所不同。以下是对这三种数据库的主要区别进行的详细概述。 一、Oracle数据库 ...
本文将深入探讨SQL Server、MySQL和Oracle这三种主流数据库系统中的分页查询实现方式。 首先,我们来看SQL Server。SQL Server提供了一种称为"TOP"的关键字来实现分页。例如,如果我们想获取第1页(假设每页有10条...
数据库驱动大全这个资源包含了SQL Server、Oracle以及MySQL等主流数据库系统的ODBC(Open Database Connectivity)驱动程序。ODBC是微软提出的一种标准接口,允许应用程序通过统一的方式与各种不同类型的数据库进行...
数据库转换工具,可实现oracle,mysql,sqlserver,sybase,db2相互转换
Oracle 数据库到 SqlServer 数据迁移步骤详解 Oracle 数据库到 SqlServer 的数据迁移是一项复杂的任务,需要经过多个步骤来完成。本文将详细介绍如何将 Oracle 数据库导入到 SqlServer 中。 Step 1-6: 数据源设置...
这款工具能够支持三种主流的关系型数据库管理系统:Oracle、SQL Server和MySQL。 Oracle数据库是全球广泛使用的大型企业级数据库系统,以其高可用性、高性能和安全性著称。它的表结构包括了表名、字段名、字段类型...
本主题聚焦于如何使用特定工具或脚本将MySQL数据库转换为SQL Server,这一过程通常称为“数据库迁移”。以下是关于这个过程的一些关键知识点: 1. **数据库迁移的目的**:迁移可能出于多种原因,如业务增长、性能...
总的来说,这三个数据库的jar包为Java开发者提供了与SQL Server、MySQL和Oracle数据库通信的基础,使得开发人员可以利用Java的强大功能来构建和管理数据库应用程序。正确理解和使用这些jar包,将有助于提升应用程序...
本文将对MySQL数据库、SQL Server数据库、Oracle数据库以及使用JTDS驱动的SQL Server数据库进行深入探讨。 #### MySQL数据库驱动 MySQL是全球广泛使用的开源关系型数据库系统之一。为了使Java应用程序能够连接到...
Oracle、SQL Server 及 MySQL 是目前最流行的三大关系数据库管理系统,各有其优缺点。本文将从表空间、查询语句、事务、分区表和分区索引、优缺点等方面对三者进行比较。 表空间 MySQL 的表空间有共享表空间和独占...
本教程聚焦于MySQL、MSSQL(Microsoft SQL Server)和Oracle这三大主流数据库系统,旨在帮助初学者快速入门并深入理解数据库的核心概念和操作。 首先,MySQL是一款开源、免费的关系型数据库管理系统,广泛应用于...
MySQL和SQL Server分别是两种广泛应用的关系型数据库系统,由不同的公司开发:MySQL由Oracle公司维护,而SQL Server则是微软的产品。有时,出于业务需求,我们需要在这些不同的数据库之间进行数据交换或同步。本文将...
描述中提到的"sqlserver转oracle"则是指将SQL Server数据库的内容迁移到Oracle数据库的过程。这个过程涉及到SQL语法的转换,因为SQL Server和Oracle虽然都遵循SQL标准,但各自的语法特性和函数库有所不同。例如,SQL...
### Oracle 10g 或 11g 通过 DBLink 访问 SQL Server 数据库 #### 概述 本文档详细介绍了如何在Oracle 10g或11g环境中使用DBLink来访问SQL Server数据库的方法。这种方法对于那些习惯于使用Oracle进行数据库操作的...