`
- 浏览:
168717 次
- 性别:
- 来自:
武汉
-
1.有标识列時的方案:
--1.利用Not In和SELECT TOP分页
语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 20 id
FROM TestTable
ORDER BY id))
ORDER BY ID
SELECT TOP 页大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 页大小*(页数-1) id
FROM 表
ORDER BY id))
ORDER BY ID
--2.利用ID大于多少和SELECT TOP分页
语句形式:
SELECT TOP 10 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 20 id
FROM TestTable
ORDER BY id) AS T))
ORDER BY ID
SELECT TOP 页大小 *
FROM TestTable
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 页大小*(页数-1) id
FROM 表
ORDER BY id) AS T))
ORDER BY ID
--3.比較當前頁主鍵大小
使用:不能指定分頁.只適用於 首頁,上一頁,下一頁,末頁.
首页:
select top 页大小 * from 表名 order by 主键
下一頁:
select top 页大小 * from 表名 where 主键 > 上一页末记录的主键 order by 主键
上一頁:
select top 页大小 * from 表名 where 主键 > 上一页首记录的主键 order by 主键 desc
末頁:
select top 页大小 * from 表名 order by 主键 desc
2.無標識列時的方案,同時也適用於有標識列時的情況.
--1.利用SQL的游标存储过程分页
create procedure SqlPager
@sqlstr nvarchar(4000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1, @rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
exec sp_cursorclose @P1
set nocount off
--2.用临时表.
select top 10 * into #tmp from categories
select * from #tmp
3.SQL2005中的新的排序方法
SELECT *
FROM
(
SELECT *,ROW_NUMBER() OVER (ORDER BY ItemID) AS RowNo
FROM Portal_Discussion
) AS A
WHERE RowNo>=1 and RowNo<=10
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
- `float`在SQL Server中分为两种:`float(4)`对应Oracle的`BINARY_FLOAT`,`float(8)`对应`BINARY_DOUBLE`。 - `money`和`smallmoney`在SQL Server中对应Oracle的`NUMBER(precision,scale)`,其中scale是小数位数...
### SQL中的分页解决方案 ...通过上述介绍,我们了解了在 Oracle、SQL Server 和 MySQL 这三种主流数据库中实现分页查询的具体方法及其背后的原理。希望这些知识能够帮助开发者更好地处理大规模数据集的查询需求。
SQL Server中分页可以通过多种方式实现,其中一种常用的方法是使用`TOP`关键字结合子查询。此外,还可以使用`OFFSET`和`FETCH`关键字来实现更简单的分页查询。 #### 使用TOP关键字: 1. **第一步**:创建一个子...
SQL Server 2008引入了`TOP`和`ROW_NUMBER()`等关键字,使得分页查询成为可能。以下是对这些方法的详细解释: 1. **TOP方案**: 使用`TOP`关键字来获取指定数量的记录。例如,如果我们想获取第11到20条记录,可以...
ASP.NET 2.0+SQL Server 2005全程指南 目录 基础篇 第1章 ASP.NET概述及环境配置 1.1 认识ASRNET 1.1.1 .NET Framework框架 1.1.2 ASP.NET功能与特性 1.1.3 ASP.NET与ASP的区别 1.2 搭建ASP.NET开发环境 1.2.1...
下面将详细介绍SQL Server 2000和DB2中分页存储过程的实现,以及DB2如何自动生成流水号。 首先,让我们看看SQL Server 2000的分页存储过程。在SQL Server 2000中,由于没有内置的OFFSET和FETCH NEXT功能,我们通常...
本资源包“分页工具-jsp中分页集成jar包”提供了在JSP(JavaServer Pages)环境中进行分页操作的解决方案。下面将详细解释这个包中的核心组件和使用方法。 1. **pager-taglib.jar**: 这是一个包含自定义标签库的...
本教程中使用的数据库环境为Visual Studio 2008搭配SQL Server 2005,使用master数据库中的`dbo.spt_values`表作为示例。这个表没有指定的主键,但我们可以基于`number`列进行排序。 ### 数据层实现 1. **DBhelper...
变量在SQL Server中分为全局变量和局部变量。全局变量由系统定义并维护,例如`@@version`用于查看SQL Server版本,`@@error`返回最后执行的语句的错误号。而局部变量则是用户自定义的,它们的作用范围仅限于当前...
在分页显示的场景下,Bean通常会包含分页所需的方法,如获取当前页数、总页数、每页显示的数据数量等。 1. **创建分页Bean** 一个简单的分页Bean可能包含以下属性和方法: - `currentPage`:当前页数 - `...
在实际应用中,更常见的是使用`OFFSET`和`FETCH NEXT`(在SQL Server 2012及更高版本中)或者`LIMIT`和`OFFSET`(在MySQL等系统中)来实现分页,这些方法通常更有效率,尤其是当配合索引使用时。 为了优化性能,应...
2. **分页逻辑**:在Java后端,我们需要编写一个服务方法,该方法接收当前页码和每页显示条数作为参数,根据这些信息从数据库中查询对应的数据。可以使用SQL的LIMIT和OFFSET子句来实现分页,或者使用ORM框架如...
这条SQL语句表示获取第一页(page=1)的前10条数据。 - **预编译语句**:为了防止SQL注入,推荐使用PreparedStatement,可以动态设置LIMIT和OFFSET值。 3. **JSP与数据库交互** - **JDBC连接**:使用JDBC(Java ...
在JavaServer Pages (JSP) 中实现分页显示是一项常见的任务,特别是在开发Web应用程序时,如数据量庞大的表格或者搜索结果。分页可以帮助用户更轻松地浏览和管理大量的信息,而不是一次性显示所有内容。本篇文章将...
T-SQL语言基础是SQL Server中的核心组成部分,用于管理和处理数据库中的数据。T-SQL扩展了标准SQL,提供了更多的功能和控制。 在T-SQL中,注释是开发者用来解释代码的重要工具。有两种类型的注释方式:单行注释使用...
临时表在SQL Server中分为两种类型:局部临时表(以`#`开头)和全局临时表(以`##`开头)。 1. **名称长度**:临时表的名称长度限制为116个字符,以便数据库引擎区分不同会话创建的不同临时表。 2. **作用域**: -...
- 不同数据库(如MySQL、Oracle、SQL Server)的分页实现示例。 - 使用JDBC直接操作SQL进行分页的方法。 - ORM框架(如Hibernate、MyBatis)的分页插件或API使用教程。 - Spring Data JPA的Pageable接口和Page对象的...
ADO是微软的老一代数据访问技术,它允许开发者直接与各种数据库管理系统(如SQL Server)交互。 分页显示数据是常见的需求,尤其是在处理大量数据时,以提高用户界面的性能和用户体验。文档中提到了两种基本的ADO...
1. 数据层分页:这种分页策略主要在数据库层面实现,如SQL查询时通过T-SQL的`OFFSET/FETCH`(SQL Server)、`LIMIT/OFFSET`(MySQL)或`ROW_NUMBER()`(SQL Server 2005/2008)等来限制返回的数据量。这种方法的优点...
- 变量在SQL2000中分为全局变量和局部变量。全局变量由系统预定义,以`@@`开头,如`@@CONNECTIONS`,用于反映服务器级别的信息,用户不能直接修改。 - 局部变量由用户定义,使用前需声明,不能与全局变量重名,...