sqlserver的3种分页方式

   sqlserver的3种分页方式,如下:

  01 ---sqlServer 2005 分页语句集合

  02 ----缺点:

  03 -- top:必须用户编写复杂sql,不支持复合主键

  04 -- max:必须用户编写复杂sql,不支持非唯一列排序

  05 --row:不支持sqlserver2000

  06 --------------------------------

  07 select TOP @pagesize id,email,qq,wechart,phone,phone1 FROM contact

  08 where id not in

  09 (SELECT TOP (@pagesize*(currentpage-1)) id from contact ORDER BY id ASC )

  10 ORDER BY id ASC

  11

  12

  13 -- 效率最低下的分页语句(只需要知道页数和每页的显示数目即可)

  14 select * from AISINO_BD_TelephoneRecord order by ID asc;

  15 select top 5 ID ,companyID,projectID from dbo.AISINO_BD_TelephoneRecord

  16 where ID not in(

  17 select top (5*(2-1)) ID from AISINO_BD_TelephoneRecord order by ID asc

  18 ) order by ID asc

  19

  20

  21 ----------------------

  第二种方法,只需要知道页数和每页的显示数目即可-------------------------------

  22

  23 select top 5 * from AISINO_BD_TelephoneRecord

  24 where ID>(

  25 select max(ID)

  26 from (select top (5*(2-1)) ID from AISINO_BD_TelephoneRecord order by ID asc)tt

  27 )

  28 order by ID asc

  29

  30

  31 ------------------

  -第三种方法---只需要知道页数和每页的显示数目即可----------------------------------

  32

  33

  34 select *

  35 from (select top (5*(1-1)+5) row_number()over(order by Id asc)__rn__, * from AISINO_BD_TelephoneRecord)t

  36 where __rn__>5*(1-1)

  在oracle 中的分页:

  oracle 自带了rownum ,直接使用rownum 进行分页:

  1

  select *

  2

  from (select a.*, rownum nm

  3

  from (select * from aos_rms_user) a

  4

  where rownum <= 5*(1-1)+5)

  5

  where nm >= 5*(1-1)

时间: 2024-11-04 22:39:20

sqlserver的3种分页方式的相关文章

【自然框架】QuickPager分页控件,新增一种分页方式——伪URL分页(Postback版)

 适用场景 先说一下伪URL分页的适用场景.在网站的网页里实现查询功能,如果查询条件比较少的话,还比较好办,把查询条件放到URL里面传递即可.但是如果查询条件过多,就会照成URL的长度过长.既不好看,编写起来也很麻烦.如果查询条件是汉字的话,还有一个编码的问题.   Postback分页   再看看现有的几种分页方式.Postback分页方式可以利用ViewState来很方便的保存查询条件,但是由于采用表单提交的方式实现,搜索引擎不能识别.这个对于网站来说,是一个很难接受的.   URL分页 这

sqlserver 三种分页方式性能比较[图文]_MsSql

Liwu_Items表,CreateTime列建立聚集索引 第一种,sqlserver2005特有的分页语法 复制代码 代码如下: declare @page int declare @pagesize int set @page = 2 set @pagesize = 12 SET STATISTICS IO on SELECT a.* FROM ( SELECT ROW_NUMBER() OVER (ORDER BY b.CreateTime DESC) AS [ROW_NUMBER], b

sqlserver三种分页方式性能比较

Liwu_Items表,CreateTime列建立聚集索引 第一种,sqlserver2005特有的分页语法 declare @page intdeclare @pagesize intset @page = 2set @pagesize = 12 SET STATISTICS IO onSELECT a.* FROM (SELECT ROW_NUMBER() OVER (ORDER BY b.CreateTime DESC) AS [ROW_NUMBER], b.* FROM [dbo].[L

三种分页方式效率的简单测试

分页 本文的三种分页方案来自于: 只是做了更大数据量.不同位置页的对比. 建立表: CREATE TABLE [TestTable] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [Country] [nvarchar]

详解SQLServer和Oracle的分页查询_MsSql

不管是DRP中的分页查询代码的实现还是面试题中看到的关于分页查询的考察,都给我一个提示:分页查询是重要的.当数据量大的时候是必须考虑的.之前一直没有花时间停下来好好总结这里.现在又将Oracle视频中关于分页查询的内容看了一遍,发现很容易就懂了. 1.分页算法     最开始我在网上查找资料的时候,看到很多分页内容,感觉很多很乱.其实不是这样.网上那些资料大同小异.问题出在了我自己这里.我没搞明白进行分页的前提是什么?我们都知道只要有分页都会涉及这些变量:每页又多少条记录(pageSize).当

详解SQLServer和Oracle的分页查询

不管是DRP中的分页查询代码的实现还是面试题中看到的关于分页查询的考察,都给我一个提示:分页查询是重要的.当数据量大的时候是必须考虑的.之前一直没有花时间停下来好好总结这里.现在又将Oracle视频中关于分页查询的内容看了一遍,发现很容易就懂了. 1.分页算法     最开始我在网上查找资料的时候,看到很多分页内容,感觉很多很乱.其实不是这样.网上那些资料大同小异.问题出在了我自己这里.我没搞明白进行分页的前提是什么?我们都知道只要有分页都会涉及这些变量:每页又多少条记录(pageSize).当

详解Oracle的几种分页查询语句

分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句.ROWNUM <= 40和RN >= 21控制分页查询的每页的范围. 上面给出的这个分页查询语句,在大多数情况拥有较高的效率.分页的目的就是控制输出结果集大小,

SQL Server两种分页的存储过程使用介绍_MsSql

由于现在很多的企业招聘的笔试都会让来招聘的写一个分页的存储过程,有的企业甚至要求应聘者用两种方式实现分页,如果没有在实际项目中使用过分页,那么很多的应聘者都会出现一定的问题,下面介绍两种分页的方法. 一. 以学生表为例,在数据库中有一个Student表,字段有StudentNo, ,LoginPwd, StudentName,Sex,ClassId,Phone,Address,BornDate,Email,isDel 要求:查询学生的信息,每页显示5条记录 二.第一种方式分页:利用子查询 not

【开源】QuickPager ASP.NET2.0分页控件V2.0.0.7 增加了一个js函数的分页方式。

       昨天在csdn上看到一个人提出来了一种分页的需求,大致是分页控件只负责绘制总页数.上一页.下一页等信息,然后在用户翻页的时候可以触发一个js函数,然后自己实现这个js函数.并不需要提交表单,他想用ajax的方式来获取数据,但是又不想使用微软的ajax.        大概的需求就是这样的(至少我的理解是这样的),不知道吴旗娃的分页控件是不是支持这种需求.不过我的分页控件还没有涉及到ajax,原因是我还不会用ajax,那么是不是可以先实现这种需求呢?想了一下,比较简单,只要继承Pag