SELECT TOP 页大小 *
FROM (SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1)   as A
WHERE RowNumber > 页大小*(当前页-1) --注解:首先利用Row_number()为table1表的每一行添加一个行号,给行号这一列取名'RowNumber' 在over()方法中将'RowNumber'做了升序排列
--然后将'RowNumber'列 与table1表的所有列 形成一个表A
--重点在where条件。假如当前页(currentPage)是第2页,每页显示10个数据(pageSzie)。那么第一页的数据就是第11-20条
--所以为了显示第二页的数据,即显示第11-20条数据,那么就让RowNumber大于 10*(2-1) 即:页大小*(当前页-1)

--将上面的方法写成存储过程 (表名Location)if(exists(select* from sys.procedures where name='p_location_paging'))--如果p_location_paging这个存储过程存在
drop proc p_location_paging  --那么就删除这个存储过程
go
create proc p_location_paging(@pageSize int, @currentPage int)--创建存储过程,定义两个变量'每页显示的条数'和'当前页'
as
select  top (@pageSize) * from (
select ROW_NUMBER() over(order by locid) as rowid ,* from location
)as A
where rowid> (@pageSize)*((@currentPage)-1)

简单的说row_number()从1开始,为每一条分组记录返回一个数字

转载于:https://www.cnblogs.com/Jayesslee/p/9342341.html

SQL SERVER/ROW_NUMBER() OVER (ORDER BY id)高效分页相关推荐

  1. 根据指定字段排序编号(SQL Server 2005,Update,Order By)

    在SQL Server 2005可以通过with as根据指定的字段排序编号,SQL语句如下: WITH 表1 AS ( SELECT 编号字段名, ROW_NUMBER() OVER(ORDER B ...

  2. SQL Server返回插入数据的ID和受影响的行数

    首先看看数据库里面的数据(S_Id为自增长标识列): sql server 中返回上一次插入数据的ID(标识值)有三种方式: 第一种 @@IDENTITY: 1 insert into Student ...

  3. sql server :distinct 与order by 一起使用要注意

    一次在sql server 2008 中写sql语句:select distinct firstname,lastname from person order by person_id 错误提示: M ...

  4. SQL Server 2005 中行号的显示,分页

    下面介绍一个SQL Server 2005 中的新东东: ROW_NUMBER 返回结果集分区内行的序列号,每个分区的第一行从 1 开始. 语法: ROW_NUMBER ( )     OVER ( ...

  5. sql server row_number() over(partition by grower_pk order by a.pk_id desc)

    select * from ( select a.*,row_number() over(partition by grower_pk order by a.pk_id desc) as rn fro ...

  6. SQL Server常用的系统存储过程应用实例(转)

    摘要:Sql Server自带的系统存储过程有许多,但大部分我们是不常用的.我在实践中根据自己的体会,总结整理了一些比较常用的,加上一些实例介绍给大家.本期介绍: l         sp_attac ...

  7. SQL Server中row_number函数用法介绍

    一.SQL Server Row_number函数简介 ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 语法实例: ...

  8. SQL Server 批量更新字段值为ROW_NUMBER()+列名称

    摘要:有这样一个需求,需要把数据表中的列名称的数据按行号重新排序并更新一下,这里用到了ROW_NUMBER()函数. 一:需求如下图: 二:通过执行如下sql语句实现了上面的需求,如下: update ...

  9. SQL Server数据库基础知识汇总

    目录 目录 一.数据库概念 1.1 什么是数据库 1.2 为什么用数据库 1.3 数据库的发展历史 1.4 数据库分类 1.5 DBMS数据库管理系统 二. SQL(Structured Query ...

  10. Sql Server 2012 分页方法分析(offset and fetch)

    最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的.其中  offse ...

最新文章

  1. fifo 上使用 select -- 转
  2. memset 还可以这样用
  3. 腾讯在线教育小程序开发实践之路
  4. SAP Spartacus B2B页面的BodyContent position
  5. shell脚本 回顾 小练习
  6. 10个高效的摸鱼神器,你错过几个?
  7. mysql 数据库编码怎么看_mysql查看数据库编码
  8. oracle驱动的区别吗,oracle10g下JDBC驱动包的区别
  9. matlab多图形相交,用MATLAB作出柱面x^2+y^2=4 和柱面x^2+z^2=4 相交的图形.
  10. matlab中序列的dtft,dtft的matlab
  11. 28.XAPP1052驱动详解-WinDriver DMA读写流程
  12. sql问题导致CPU使用率100%
  13. c语言写股票交易软件,写股票软件
  14. S/HIC 系列软件:S/HIC 利用随机森林识别 软/硬 清扫
  15. 让WMP12成为万能播放器
  16. 第11章:使用Apriori算法进行关联分析(从频繁项集中挖掘关联规则)
  17. mmorpg游戏服务器技能系统设计,对MMORPG职业技能设计的一些思考和方法总结
  18. 消息队列RabbitMQ入门与PHP实战
  19. 计算机在机械智能制造中的应用,数控技术在智能制造中的应用及发展
  20. PHP商城 商品模块 数据库 表设计

热门文章

  1. Windows套接字I/O模型(3) -- WSAAsyncSelect模型
  2. DirectX12(D3D12)基础教程(十九)—— 多实例渲染
  3. 设计院的故事--转自ABBS(自动铅笔)
  4. 关于Oppen Live Writer中插入可折叠着色代码的插件
  5. 涨握在线|欧或重启QE;英市港市合并!
  6. 组织能力:企业成败的关键(组织能力杨三角系列一)
  7. 澳洲留学生面经,Java后端,阿里、头条、百度、华为、微策略
  8. 史上最详细嵌入式系统设计师修炼手册
  9. Python学习:round函数,截取小数位数
  10. matlab 光平面标定代码,光平面标定法