`
wsql
  • 浏览: 12061526 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

特殊分页处理

阅读更多

原帖地址:
http://community.csdn.net/Expert/topic/3662/3662135.xml?temp=.4289972

--测试数据
create table tb(ID int primary key,grade varchar(10),uptime datetime)
insert tb select 1 ,'a','2004-12-11'
union all select 2 ,'b','2004-12-11'
union all select 3 ,'c','2004-12-11'
union all select 4 ,'a','2004-12-12'
union all select 5 ,'c','2004-12-13'
union all select 6 ,'c','2004-12-13'
union all select 7 ,'a','2004-12-14'
union all select 8 ,'a','2004-12-15'
union all select 9 ,'b','2004-12-16'
union all select 10,'b','2004-12-17'
union all select 11,'a','2004-12-17'
go

/*--分页处理要求

每页5条记录: c类2条 b类1条 a类2条
数据顺序,uptime desc,grade=c>b>a,id desc
某类不足时,由它的后续类补齐
--*/

--分页处理的存储过程
create proc p_split
@currentpage int=1, --要显示的当前页
@pagesize int=5 --每页的大小(如果调整了这个,则存储过程中,排序的处理也要做相应的修改,即:case grade when 'c' then 2 when 'b' then 1 when 'a' then 2 end 部分,这个控制每类/每页多少条记录as
set nocount on
set @currentpage=@currentpage*@pagesize
set rowcount @currentpage
select * into #t from tb a
order by ((select count(*) from tb where grade=a.grade and(uptime>a.uptime or uptime=a.uptime and id>=a.id))-1)
/case grade when 'c' then 2 when 'b' then 1 when 'a' then 2 end
,case grade when 'c' then 1 when 'b' then 2 when 'a' then 3 end,id desc
if @currentpage>@pagesize
begin
set @currentpage=@currentpage-@pagesize
set rowcount @currentpage
delete from #t
end
select * from #t
order by case grade when 'c' then 1 when 'b' then 2 when 'a' then 3 end
,uptime desc,id desc
go

--调用
exec p_split 1
exec p_split 2
exec p_split 3
go

--删除测试
drop table tb
drop proc p_split

/*--测试结果

ID grade uptime
----------- ---------- -------------------------
6 c 2004-12-13 00:00:00.000
5 c 2004-12-13 00:00:00.000
10 b 2004-12-17 00:00:00.000
11 a 2004-12-17 00:00:00.000
8 a 2004-12-15 00:00:00.000


ID grade uptime
----------- ---------- -------------------------
3 c 2004-12-11 00:00:00.000
9 b 2004-12-16 00:00:00.000
2 b 2004-12-11 00:00:00.000
7 a 2004-12-14 00:00:00.000
4 a 2004-12-12 00:00:00.000


ID grade uptime
----------- ---------- -------------------------
1 a 2004-12-11 00:00:00.000
--*/

分享到:
评论

相关推荐

    MaBatis中的分页插件以及特殊字符处理

    总的来说,MyBatis的分页插件极大地简化了分页查询的实现,而对特殊字符的处理则保证了SQL的安全性。正确理解和使用这些功能,可以提升开发效率,同时避免潜在的安全风险。在实际项目开发中,应当充分利用这些工具,...

    工作分享:JS分页处理

    工作中一些特殊场景,需要使用Javascript来进行分页的处理,自己纯手工写了一个分页处理。 分享给大家,可以作为参考学习,也可以拿来直接使用。谢谢你们!

    静态分页代码分页分页分页

    3. **JavaScript 动态处理**:虽然HTML静态代码分页主要是前端展示,但为了实现点击分页链接时的跳转效果,通常会用到JavaScript。例如,可以监听`<a>`标签的`click`事件,阻止默认跳转行为,然后根据用户点击的页码...

    jQuery 分页 滑动分页

    在网页开发中,分页是一种常见的用户界面设计,用于处理大量数据或内容的展示,以提高用户体验和页面加载速度。jQuery 是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理和动画效果。滑动分页是jQuery分页中...

    Jquery Ajax分页(有实例)

    考虑无数据和最后一页的特殊处理。 通过以上分析,我们了解到jQuery AJAX分页不仅简化了开发流程,还提供了丰富的自定义可能性。在"JqureySweepPagesDemo"中,你可以看到这些特性的实际应用,为你的Web项目带来高效...

    .net分页控件,.net自定义分页控件

    .NET框架提供了一些内置的分页控件,如ASP.NET中的GridView和DataGrid,但这些控件可能无法满足开发者对于外观、功能或性能的特殊需求,因此,自定义分页控件的需求应运而生。 创建自定义分页控件涉及以下几个关键...

    js真假分页示例

    - HTML文件:包含了HTML结构,用于展示分页和内容区域,可能使用了特殊的类或ID供JavaScript操作。 - CSS文件:定义了分页的样式,如颜色、布局等,以确保与网站设计一致。 - JavaScript文件:包含了jQuery分页插件...

    Java中GET表单传值分页搜索功能

    7. **数据库查询**:实现分页搜索功能,需要结合SQL查询语句,如使用`LIMIT`和`OFFSET`(MySQL)或`FETCH NEXT`和`OFFSET`(SQL Server)来限制返回的记录数,以及`WHERE`子句来处理搜索条件。 8. **安全性和效率**...

    仿百度分页代码 谷歌分页代码

    - **边界条件处理**:处理第一页和最后一页的特殊情况,确保分页导航的完整性。 ### 实际应用 在实际项目中,分页功能的实现不仅限于代码层面,还涉及到数据库查询优化、用户体验设计等多个方面。例如,在查询数据...

    Ldap 分页问题

    在处理大量数据时,一次性获取所有记录可能导致性能下降,因此分页查询变得至关重要。 描述中提到的“NULL”可能意味着原始博客文章没有提供额外的上下文信息,但我们可以从一般的 LDAP 分页方法来讨论。在 LDAP 中...

    最实用的漂亮的分页样式

    在网页设计中,分页是一种常见的用户界面元素,用于处理大量数据或内容的展示,使得用户可以方便地浏览和导航。"最实用的漂亮的分页样式"这一主题着重于提升用户体验,通过美观的设计吸引用户并方便他们高效地浏览...

    FreeMarker通用的分页

    通过精心设计的宏和逻辑处理,开发者可以轻松地在不同的场景下应用分页,同时保持代码的清晰和模块化。这不仅节省了开发时间,也降低了维护成本,使得FreeMarker成为Web开发中处理动态内容的理想选择之一。掌握...

    bootstrap-table 分页Demo

    可以实现查询、分页、排序、复选框、设置显示列、Card view视图、主从表显示、合并列、国际化处理等处理功能,而且该插件同时也提供了一些不错的扩展功能,如移动行、移动列位置等一些特殊的功能,插件可以用基于...

    通用PHP分页组件

    7. 错误处理和兼容性:组件应具有良好的错误处理机制,确保在参数错误或特殊情况下的正常运行,并兼容多种PHP版本和环境。 在使用过程中,开发者可能需要了解如何设置和传递这些参数,以及如何处理返回的分页HTML...

    好看的分页样式

    5. 后端渲染:在服务器端进行分页处理,减少前端负担,提高性能。 四、优化技巧 1. 增加载入速度:采用懒加载策略,只加载可视区域内的内容。 2. 适应移动端:响应式设计,确保在不同设备上都有良好的显示效果。 3....

    Asp长文章含html标签分页

    总之,ASP长文章含HTML标签的分页处理是一个技术性较强的任务,需要考虑HTML结构的保持和特殊字符的正确处理。这个资源可能为ASP开发者提供了一种有效且经过修正的解决方案。对于那些正在或即将面临类似问题的人来说...

    分页显示大量数据

    ### 分页显示大量数据 ...总结来说,通过合理利用cxGrid、ClientDataset以及事件处理机制,可以有效实现大量数据的分页显示,同时结合多线程技术可以进一步优化程序性能,为用户提供流畅的操作体验。

    layui treegrid 分页

    3. **分页功能**:在处理大量数据时,分页是必不可少的,它可以提高网页的加载速度并优化用户体验。layui treegrid 的分页功能允许用户按需加载数据,每次只显示一部分记录,通过翻页来查看其他数据。这有助于减少...

    C#分页控件,简单好用

    这样的好处在于,开发者可以灵活地控制数据的加载和显示,适合于对数据处理有特殊需求的情况。 实现一个简单的分页控件,通常需要以下几个关键步骤: 1. **数据源**:确定数据来源,可能是数据库、文件或其他数据...

    eWebEditor 编辑器带分页符

    分页符的实现方式有多种,例如可以使用特殊的HTML标签来表示分页符,或者通过CSS样式来模拟分页效果。为了保证用户体验,分页的算法应该尽可能智能,比如避免将一句话分隔到两页,或者保持段落的完整性。同时,还要...

Global site tag (gtag.js) - Google Analytics