//方案1:(利用Not In和SELECT TOP分页) ===========效率最高
SELECT TOP 页大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id))
ORDER BY ID
//方案2:(利用ID大于多少和SELECT TOP分页)
SELECT TOP 页大小 *
FROM TestTable
WHERE (ID > (SELECT MAX(id)
FROM (SELECT TOP 页大小*页数 id
FROM 表
ORDER BY id) AS T))
ORDER BY ID
//方案3:(利用SQL的游标存储过程分页)=================效率最差但是最常用
//方案4:存储过程分页
/*----------------------------------------------
*procedure name : prePageResult
* author : ShiDili
* create date : 2011-11-20
*/
CREATE PROCEDURE prcPageResult
-- 获得某一页的数据 --
@currPage int = 1, --当前页页码 (即Top currPage)
@showColumn varchar(2000) = '*', --需要得到的字段 (即 column1,column2,......)
@tabName varchar(2000), --需要查看的表名 (即 from table_name)
@strCondition varchar(2000) = '', --查询条件 (即 where condition......) 不用加where关键字
@ascColumn varchar(100) = 'id', --排序的字段名 (即 order by column asc/desc)
@bitOrderType bit = 0, --排序的类型 (0为升序,1为降序)
@pkColumn varchar(50) = '', --主键名称
@pageSize int = 20 --分页大小
AS
BEGIN -- 存储过程开始
-- 该存储过程需要用到的几个变量 --
DECLARE @strTemp varchar(1000)
DECLARE @strSql varchar(4000) --该存储过程最后执行的语句
DECLARE @strOrderType varchar(1000) --排序类型语句 (order by column asc或者order by column desc)
BEGIN
IF @bitOrderType = 1 -- bitOrderType=1即执行降序
BEGIN
SET @strOrderType = ' ORDER BY '+@ascColumn+' DESC'
SET @strTemp = '<(SELECT min'
END
ELSE
BEGIN
SET @strOrderType = ' ORDER BY '+@ascColumn+' ASC'
SET @strTemp = '>(SELECT max'
END
IF @currPage = 1 -- 如果是第一页
BEGIN
IF @strCondition != ''
SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@showColumn+' FROM '+@tabName+
' WHERE '+@strCondition+@strOrderType
ELSE
SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@showColumn+' FROM '+@tabName+@strOrderType
END
ELSE -- 其他页
BEGIN
IF @strCondition !=''
SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@showColumn+' FROM '+@tabName+
' WHERE '+@strCondition+' AND '+@pkColumn+@strTemp+'('+@pkColumn+')'+' FROM (SELECT TOP '+STR((@currPage-1)*@pageSize)+
' '+@pkColumn+' FROM '+@tabName+@strOrderType+') AS TabTemp)'+@strOrderType
ELSE
SET @strSql = 'SELECT TOP '+STR(@pageSize)+' '+@showColumn+' FROM '+@tabName+
' WHERE '+@pkColumn+@strTemp+'('+@pkColumn+')'+' FROM (SELECT TOP '+STR((@currPage-1)*@pageSize)+' '+@pkColumn+
' FROM '+@tabName+@strOrderType+') AS TabTemp)'+@strOrderType id asc
END
END
EXEC (@strSql)
END -- 存储过程结束
------------------------------------------------
GO
分享到:
相关推荐
**Qt编写的数据库分页demo**是一个用于展示如何在Qt应用程序中实现高效、用户友好的数据库数据分页功能的示例项目。这个demo的核心在于它能够处理大量的数据,如千万级记录,同时提供流畅的用户体验,包括上一页、...
### 各数据库分页语法支持 #### 概述 在数据库操作中,分页查询是一项非常常见的需求。分页能够帮助我们有效地管理大量的数据记录,提高数据查询的效率和用户体验。不同的数据库系统提供了不同的分页机制,本文将...
数据库分页是数据库管理系统中用于实现用户界面分段显示大量数据的一种技术。它允许用户逐步浏览数据集,而不需要一次性加载所有记录,从而提高用户体验并减少服务器资源的消耗。本篇文章将详细介绍如何在不同的...
基于VB6+ADO+ListView制作的一个数据库分页显示程序 基于VB6+ADO+ListView制作的一个数据库分页显示程序是使用VB6开发的一款数据库分页显示程序,使用ADO(ActiveX Data Objects)技术访问数据库,并使用ListView...
在ASP(Active Server Pages)与SQL Server的组合中,实现数据库分页显示是一项常见的任务,尤其是在构建大型数据驱动的Web应用程序时。分页能够有效地管理大量数据,避免一次性加载所有记录,提高页面加载速度,同时...
本教程将深入探讨如何在Qt应用中实现SQLite数据库的数据分页显示。 首先,我们需要在Qt项目中集成SQLite数据库支持。在Qt Creator中,新建一个Qt Widgets Application项目,然后在.pro文件中添加`QT += sql`来启用...
在这个"易语言测试源码,易语言数据库分页显示"的压缩包中,我们关注的是如何在易语言中实现数据库数据的分页显示功能。 数据库分页显示是常见的数据处理技术,尤其在网页或应用程序中,当数据量较大时,为了提高...
在IT行业中,数据库分页显示是一项常见的功能,尤其在网页应用和桌面软件中,用于处理大量数据时,分页能够有效提高用户体验,避免一次性加载过多数据导致系统性能下降。本示例是基于易语言(EasyLanguage)和MySQL...
数据库分页是数据库管理系统中一个重要的查询技术,用于在大量数据中实现高效的检索。当用户在网页或应用程序中浏览数据时,通常不希望一次性加载所有记录,而是分页显示,这样可以减少网络传输的数据量,提高用户...
一、此演示使MS Sql Server 2000默认安装的的数据库northwind,使用CUSTOMERS表中的数据做为演示,不用自已到处找表或自已建表 ... <br>(一次性读取后台分页,而非数据库分页) <br>经自已调试通过的完整工程。
数据库分页 用存储过程实现的 数据库分页 用存储过程实现的 数据库分页 用存储过程实现的 数据库分页 用存储过程实现的
在这个“易语言一个简单的数据库分页例程”中,我们将探讨如何使用易语言来实现数据库数据的分页显示。 在数据库应用中,分页是常见的数据展示方式,它可以帮助用户更有效地浏览大量数据,避免一次性加载所有数据...
数据库分页技术是大型Web应用中不可或缺的一部分,它有效地帮助用户在海量数据中浏览和查找信息,而不会一次性加载所有数据导致性能下降。本实例主要介绍了如何利用C3p0数据库连接池配合分层技术和JSTL(JavaServer ...
几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。
在本示例中,"Java Servlet 数据库分页功能演示" 提供了一个具体的应用场景,即如何在Servlet中实现数据库数据的分页展示。这在处理大量数据时尤其重要,因为它提高了用户界面的性能并提供了更好的用户体验。 首先...
数据库分页是Web开发中非常常见的一种技术,用于在大量数据中实现高效的浏览体验,避免一次性加载所有数据导致页面响应慢或内存消耗过大。这里提到的"一个通用的数据库分页类",很可能是PHP中设计的一个可复用的分页...
最完美的sql2005数据库分页,可以随便用的~!嘎嘎最完美的sql2005数据库分页,可以随便用的~!嘎嘎最完美的sql2005数据库分页,可以随便用的~!嘎嘎最完美的sql2005数据库分页,可以随便用的~!嘎嘎
在介绍数据库分页优化技术时,首先应当明确传统分页查询方法所存在的问题。在传统方法中,分页查询通常采用(limit, offset)方式,但这种方式随着数据量的增长及翻页数量的增加,查询效率会显著降低。尤其在数据量较...
### 数据库分页方法 在处理大量数据时,分页技术是提高用户体验、优化系统性能的重要手段之一。本文将深入探讨数据库分页的基本概念、原理以及实现方式,并通过具体的SQL语句示例来帮助读者更好地理解和掌握这一...