史上最强的数据分页方法

原创 2003年11月29日 23:10:00

看到前辈们无数的分页方法,其中奇淫技巧不尽有之,其中之最当属这篇帖子
http://www.csdn.net/develop/Read_Article.asp?Id=18627分页方法为之最,令我等菜鸟不尽畏然
我观前辈的帖子,皆由于数据库的SQL大不一致,且SQL SERVER,ACCESS等菜鸟级数据库没有如rowid,_n_,obs等之类的辅助列,空有BETWEEN运算符而无用武之地,
又无如except之类的数据集运算符,真是令无数英雄尽折腰

偶详观各数据库SQL,得出是数据库就有取前面N条记录的SQL语法,如什么select top n*****之类的语法,而数据分页的关键问题是取后N条记录的语法
偶深思良久,最后小悟,故出此言,还忘前辈们多多指点

取记录集后N条记录的大法:
假设
 1.有一sql语句将产生1000条记录 (select 唯一ID,其他字段 from 表集 where 条件 order by 排序)
 2.每页显示20条记录
 3.当前显示第5页

实现如下:
 select * from
 (
 select * from (select top 20*4 唯一ID,其他字段 from 表集 where 条件 order by 排序) as a
 union all
 select * from (select top 20*5 唯一ID,其他字段 from 表集 where 条件 order by 排序) as b
 )
 a
 group by 唯一ID,其他字段 having count(唯一ID)=1  order by 排序


 
运行此SQL,至此取记录集后N条记录大法就些完毕

详细说明:

  此SQL语句的关键应用技巧在于union all和分组上的条件过滤语句

大家可以根据此技巧完全可以做出一个通用的分页方法,如直接由用户传入sqlstr(sql语句),NumPerPage(每页显示数),currpage(当前页),自己在再函数内组织成通成的SQL分页语句

备注:
当前页为1的话就不需要运行该SQL了,直接TOP一下就OK了
由于没有环境,该SQL性能无法测试,但相信不会低效
运行平台在access,sqlserver上都可运行,其它数据库平台只需改top关键字应该就可以就地运行了

史上最强的英文翻译

1.   we   two   who   and   who? 咱俩谁跟谁阿 2.   how   are   you   ?   how   old   are   you? 怎么是你,怎么老是你...
  • love3e4520
  • love3e4520
  • 2008年01月07日 10:41
  • 401

史上最强的数据分页方法

看到前辈们无数的分页方法,其中奇淫技巧不尽有之,其中之最当属这篇帖子http://www.csdn.net/develop/Read_Article.asp?Id=18627分页方法为之最,令我等菜鸟...
  • evenbing
  • evenbing
  • 2008年03月09日 12:14
  • 491

号称史上最强!英伟达发布超级AI芯片 老黄的自动驾驶"朋友圈"达到320家!| CES 2018

▼点击上方蓝字 关注网易智能聚焦AI,读懂下一个大时代!(NVIDIA CEO黄仁勋在CES演讲)【网易智能讯 1月8日消息】在美国拉斯维加斯2018 CES展上,英伟达宣布推出的首批Xavier自主...
  • McIl9G4065Q
  • McIl9G4065Q
  • 2018年01月08日 00:00
  • 189

最强网名一览(少儿不宜)

善解人衣  松下裤带子  粑粑(注:这个很阴险,用智能的一不小心就会打成‘爸爸’)  儿童不遗  扮完病人扮护士  很有粪量的人  把把帅交出来  bt就是b里有个t  梅川酷子  一日就是一天  一...
  • iyu
  • iyu
  • 2005年01月10日 21:29
  • 3008

史上最强的绕口令.没人能读出.要不你试试?

开始玩舌头.看看你的舌头等级. 1、初入江湖:化肥会挥发 2、小有名气:黑化肥发灰,灰化肥发黑 3、名动一方:黑化肥发灰会挥发;灰化肥挥发会发黑 4、天下闻名:黑化肥挥发发灰会花飞;灰化肥挥发发黑会飞...
  • ZKYcomputer
  • ZKYcomputer
  • 2004年12月31日 22:09
  • 678

史上最强Spring mvc入门

最强Spring mvc入门
  • xiangzhihong8
  • xiangzhihong8
  • 2016年04月02日 22:35
  • 1502

能攻破所有安卓设备 最强Root工具诞生 万能一键Root

能攻破所有安卓设备 最强Root工具诞生,可以Root绝大部分手机 \ Root操作极其简单,进入界面后点击按钮就可以了。 Root完成后会重新启动手机,重启后安装SU授权工具,如Super...
  • herryy
  • herryy
  • 2014年06月25日 00:40
  • 4358

史上最强的科幻小说!

一九四五年的一天,克力富兰的孤儿院里出现了一个神秘的女婴,没 有人知道她的父母是谁。她孤独地长大,没有任何人与她来往。直到 一九六三年的一天,她莫明其妙地爱上了一个流浪汉,情况才变得好 起来。可是好景...
  • slawdan
  • slawdan
  • 2007年05月30日 14:01
  • 682

史上最强的Vim 配置文件(修正版)

史上最强的vimrc文件,据说有800行,还是作者精简后的结果.我在尽可能保留原作者的创意的前提下做了些小的修正,主要的修改如下:  增加了对win32系统的兼容,原来的vimrc文件只...
  • redguardtoo
  • redguardtoo
  • 2006年09月03日 16:24
  • 73665

史上最强Java学习路线(详解)

Java是一个通用的编程语言,其实可以干很多事,怎么学Java就看怎么用了,但有一些一般的步骤: 熟悉一种文本编辑器,比如:Vim, Emacs, Notepad++, Text...
  • qq_38245537
  • qq_38245537
  • 2017年12月19日 11:44
  • 94
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:史上最强的数据分页方法
举报原因:
原因补充:

(最多只允许输入30个字)