原帖地址:
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中的分页插件以及特殊字符处理
工作中一些特殊场景,需要使用Javascript来进行分页的处理,自己纯手工写了一个分页处理。 分享给大家,可以作为参考学习,也可以拿来直接使用。谢谢你们!
可以实现查询、分页、排序、复选框、设置显示列、Card view视图、主从表显示、合并列、国际化处理等处理功能,而且该插件同时也提供了一些不错的扩展功能,如移动行、移动列位置等一些特殊的功能,插件可以用基于...
手动分页:一般在编辑内容时加入特殊分页标记,如{pages},提交后,PHP程序会根据分页符处理分页,生成不同的静态页面。这种分页方法分页准确,但是需要人工手动添加分页符,工作量大。 自动分页:PHP程序会根据设置...
可以实现查询、分页、排序、复选框、设置显示列、Card view视图、主从表显示、合并列、国际化处理等处理功能,而且该插件同时也提供了一些不错的扩展功能,如移动行、移动列位置等一些特殊的功能,插件可以用基于...
用于gorm的Golang jQuery数据表服务器端分页 :open_book: 要求 :rocket: 安装 该模块正在使用并且用于gorm(golang ORM模块),在使用该模块之前,请确保已安装gorm。 go get -u github....
7.3 特殊要求的分页处理 217 7.3.1 随机显示的分页处理 217 7.3.2 分类数据的分页处理 221 第 8 章 树形数据处理 223 8.1 单编号处理法 223 8.1.1 方法概述 223 8.1.2 逐级汇总 225 8.1.3 ...
这个库是很棒的的扩展,它解决了如何简单地将cursor pagination实现到SQL的dbs查询而没有特殊魔术的问题。 如果要创建与中继光标分页( )兼容的GraphQl模式。 您可能使用库来使用辅助函数来定义您的模式。 ...
7.3 特殊要求的分页处理 217 7.3.1 随机显示的分页处理 217 7.3.2 分类数据的分页处理 221 第 8 章 树形数据处理 223 8.1 单编号处理法 223 8.1.1 方法概述 223 8.1.2 逐级汇总 225 8.1.3 编码重排...
可以实现查询、分页、排序、复选框、设置显示列、Card view视图、主从表显示、合并列、国际化处理等处理功能,而且该插件同时也提供了一些不错的扩展功能,如移动行、移动列位置等一些特殊的功能,插件可以用基于...
其灵活的规则制定,强大的分页处理,计划任务,对Access,Mysql,MSsql的数据库支持等功能,将有效节约您的宝贵时间,让工作变得更加轻松...... 特色介绍支持多任务、多线程:可以同时执行多个采集任务,每个任务又...
包括字符串处理、类型转换、日期处理、加密解密、文件操作、读写cookie、分页、http类处理、路径处理、过滤特殊字符、SQL安全处理、HTML标签处理等帮助类文档
HTML格式辅助类 HtmlUtils.cs 处理HTML,脚本的特殊字符或过滤 数据压缩类 GZipHandler.cs 对传输的数据进行压缩 ?DLL Dll Name AjaxPro.dll AspNetPager.dll FreeTextBox.dll URLRewriter.dll Function Ajax控件 ...
JAVA 时间格式化处理 将毫秒转化为日期 文本的倒序输出 判断一个数字是奇数还是偶数 用Hibernate 实现分页 35 选7 彩票程序 获取GMT8 时间 中文乱码转换 Big5 字与Unicode 的互换 取得服务器当前的各种具体时间 用...
rapid-validation 集成extremeTable列表分页组件,并简单扩展显示pageNumber 集成DBUnit及spring对数据库测试的支持 内置的分页查询PageInfo接口 Java日期转换的特殊处理,与My97DatePicker集成 内置最精简的ant构建...
│ │ 6.3.5 特殊的交叉报表处理示例.sql │ │ 6.4.1 库存明细帐处理示例(包含结存数).sql │ │ 6.4.1 库存明细帐处理示例.sql │ │ 6.4.2 同期及上期数据对比处理示例.sql │ │ 6.4.3 动态分组处理示例.sql │ ...
为了减少系统的数据资源,选用了目前最方便的将数据交给后台处理的方法,即使用SQL的语句将数据库交给ACCESS后台,由后台来处理,这样系统的执行会加快,也使用程序本身变得简单 本程序使用了新型控件flexcell,此...
JAVA时间格式化处理 ,将毫秒转化为日期, 文本的倒序输出 ,判断一个数字是奇数还是偶数 ,用Hibernate实现分页, 35选7彩票程序 ,获取GMT8时间, 中文乱码转换 ,小标签 ,Big5字与Unicode的互换, 取得服务器...
针对2维表数据的分页。不针对各种不同数据库为了提高效力而使用的分页读取。 对各种有可能转化成2维表数据的数据先通过自定义的转化器转化成ArrayList(HashMap)或 ArrayList(javabean) 如果类型为ArrayList不需要...