表中主键必须为标识列,[ID] int IDENTITY (1,1)
1.分页方案一:(利用Not In和SELECT TOP分页)
语句形式:
SELECT TOP 页记录数量 *
FROM 表名
WHERE (ID NOT IN
(SELECT TOP (每页行数*(页数-1)) ID
FROM 表名
ORDER BY ID))
ORDER BY ID
//自己还可以加上一些查询条件
例:
select top 2 *
from Sys_Material_Type
where (MT_ID not in
(select top (2*(3-1)) MT_ID from Sys_Material_Type order by MT_ID))
order by MT_ID
2.分页方案二:(利用ID大于多少和SELECT TOP分页)
语句形式:
SELECT TOP 每页记录数量 *
FROM 表名
WHERE (ID >
(SELECT MAX(id)
FROM (SELECT TOP 每页行数*页数 id FROM 表
ORDER BY id) AS T)
)
ORDER BY ID
例:
SELECT TOP 2 *
FROM Sys_Material_Type
WHERE (MT_ID >
(SELECT MAX(MT_ID)
FROM (SELECT TOP (2*(3-1)) MT_ID
FROM Sys_Material_Type
ORDER BY MT_ID) AS T))
ORDER BY MT_ID
3.分页方案三:(利用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
4.总结:
其它的方案:如果没有主键,可以用临时表,也可以用方案三做,但是效率会低。
建议优化的时候,加上主键和索引,查询效率会提高。
通过SQL 查询分析器,显示比较:我的结论是:
分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
分页方案一:(利用Not In和SELECT TOP分页) 效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用
分享到:
相关推荐
Struts、Hibernate和Spring(简称SSH)是Java Web开发中常用的三大开源框架,它们各自负责Web应用程序的不同层面:Struts负责表现层,Hibernate处理持久化层,而Spring则作为全面的容器,支持AOP(面向切面编程)和...
///StringConvert()汉字转拼音 ///StringNumber()数字转换中文 ///StringRep()url参数为中文时候转换加密 ///StringRes()url参数为中文时候转换解密 ///ShowWindowForm()弹出新窗口页面 ///...
本文将详细介绍两种常用的JavaWeb分页方法:基于数据库查询的分页和基于内存的分页。 一、基于数据库查询的分页 1. SQL查询分页: 这种方法直接在SQL查询语句中实现分页。大多数数据库系统如MySQL、Oracle、SQL ...
///StringConvert()汉字转拼音 ///StringNumber()数字转换中文 ///StringRep()url参数为中文时候转换加密 ///StringRes()url参数为中文时候转换解密 ///ShowWindowForm()弹出新窗口页面 ///...
本文将详细探讨三种常用的Oracle分页SQL方法:ROWNUM、ROWNUM结合子查询以及新引入的Oracle 12c的FETCH NEXT WITH OFFSET语法。这三种方法各有优缺点,适用于不同的场景。 1. ROWNUM方法: ROWNUM是Oracle中最基础...
"10经典常用的js分页代码(开发必备)"这个资源集合了十个在实际开发中广泛使用的JavaScript分页实现方案。 1. **基础概念**:分页通常涉及到数据的动态加载,通过将大量数据分成若干页,每次只显示一部分,用户可以...
本主题“常用带跳转功能分页”主要关注如何实现具有跳转功能的分页,并且能够适应各种样式需求,以提高用户操作的便捷性和网站的易用性。 分页通常涉及到以下几个关键知识点: 1. **数据查询限制**:在数据库查询...
通过封装JavaScript的常用操作,jQuery使得开发者能够更高效地编写代码,减少出错的可能性。在3D分页翻转滑块中,jQuery负责处理用户的交互事件,如点击或滑动,以及触发相应的动画效果。 接着,我们来探讨3D翻转...
本文将详细介绍几种常用的分页方法,包括SQL语句分页、Hibernate分页等。 #### SQL语句分页 SQL语句分页是最基本也是最直接的方式之一。通过调整查询语句,我们可以获取到特定范围的数据记录。下面将介绍两种常用...
4. **初始化插件**:在JavaScript中调用jQuery选择器和插件方法,设置分页配置并绑定到数据源。 5. **处理分页事件**:当用户点击分页按钮时,触发对应的事件处理函数,更新页面内容。 通过这样的配置,开发者可以...
本项目以"SSM常用的CRUD+pagehepler分页"为主题,展示了如何在SSM环境中实现基本的增删改查(CRUD)操作,并结合PageHelper分页插件进行数据展示。 **1. Spring框架**:Spring是Java企业级应用的核心框架,提供依赖...
以下是对SQL Server、Oracle和MySQL这三种常用数据库系统的分页查询语句的详细解释。 **SQL Server** 在SQL Server中,分页查询通常涉及`TOP`关键字配合子查询和`ORDER BY`来实现。一个通用的分页查询模板如下: `...
本文件“JSP分页技术(多种方法)”中,将探讨几种常见的JSP分页实现方法。 1. **基于SQL的分页** 这是最基础的分页方法,通过在SQL查询语句中添加`LIMIT`和`OFFSET`或`ROWNUM`(根据数据库类型)来实现。例如,在...
本文将深入探讨一种常用的Ajax分页方法,帮助开发者节省宝贵时间,提升网站性能。 #### Ajax分页的基本原理 Ajax分页的核心在于异步请求数据并更新页面。传统分页通常涉及页面的完全重新加载,这不仅消耗资源,也...
本文将详细介绍几种常用的C#后台分页方法及其数据库脚本实现。 #### 第一种:从DataSet里筛选分页行的数据 这种方法是在客户端进行分页处理。首先,通过查询获取所有数据到一个`DataSet`中,然后根据当前页数和每...
数据库SQL分页技术 数据库分页是指从大规模的数据集中提取指定的记录数,以减少数据传输量,提高应用程序的性能和用户体验。常见的数据库管理系统包括MySQL、SQL Server、Oracle、DB2等,每种数据库管理系统都有其...
分页工具类、一些常用的分页格式、如常见的文字分页、论坛文字分页、论坛图片分页、
本资源"JSP精心收藏的21种分页方法"正是针对这一需求,提供了多种实用且高效的分页解决方案。以下是这些方法的一些关键知识点: 1. **基础分页**:这是最简单的分页方式,通过计算总条数和每页显示的条数,设置页码...
这个方法是最为常用的 ACCESS 分页方法。缺点:每次都要读入符合条件的所有记录,然后再定位于对应页的记录。当数据量大的时候,效率就十分的低下。与此相似的方法是利用 ado 的 move 方法,每次将记录集游标移动 ...
在计算机系统中,分页式虚拟存储系统是一种常用的存储管理机制。该系统将作业信息的副本存放在磁盘上,当作业被选中时,将其开始几页先装入主存且启动执行。在这种系统中,硬件的地址转换机构起着至关重要的作用。...