网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

sqlserver2000分页大全

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

  + 'select top ' + STR(@pageSize*@pageIndex) + ' '+ @tbFields + ' FROM '

  + @tbName + @whereStr + @orderStr + ') as a '

  + @orderStr2 + ') as b ' + @orderStr

  end

  print @sql

  EXEC SP_EXECUTESQL @sql

  --测试

  declare @a BIGINT,@b BIGINT

  exec sp_pagination 'orders ', '* ', ' ', 'orderid asc ',1,5,10,@a output,@b output

  print @a

  print @b

  ------------------------------------------------------------------------------------------------------

  第二种方案:基于not in ,原型如下

  select top 页大小 *

  from testtable

  where (

  id not in

  (select top 页大小*页数 id from 表 order by id)

  )

  order by id

  弊病:1 强制排序

  2 排序列必须是唯一列,否则分页情况不符实际

  3. 使用not in,速度慢,

  第三种方案: 基于max 或者 min ,原型如下:

  select top 页大小 *

  from testtable

  where (

  id > (

  select max(id ) from ( select top 页大小*页数 id from 表

  order by id ) as t

  )

  )

  order by id

  弊病:1 强制排序

  2 排序列必须是唯一列,否则分页情况不符实际

  最后总结:

  sqlserver 分页就是烂,第二第三种方案基本上是淘汰掉了

  ,因为现在基本上什么表都是根据添加时间来排序,所以那两种方案

  没有用,真亏作者也敢发布出来,

  只有第一种方案还是稍微能用一下,但还是要复杂的拼sql 语句,不方便,要通用于所有表有点难度,

  象oracle 就很方便了,基于rownum,传入一个sql 查询语句,这个查询语句爱怎么写就怎么写,反正保证它得到一个结果集就行,不像sqlserver又是要求唯一健又是要求必须排序,把一个结果集颠来倒去,不慢才怪呢,

  • 下一篇资讯: SQL语句大全超全
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师