SQL SERVER/ROW_NUMBER() OVER (ORDER BY id)高效分页
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)高效分页相关推荐
- 根据指定字段排序编号(SQL Server 2005,Update,Order By)
在SQL Server 2005可以通过with as根据指定的字段排序编号,SQL语句如下: WITH 表1 AS ( SELECT 编号字段名, ROW_NUMBER() OVER(ORDER B ...
- SQL Server返回插入数据的ID和受影响的行数
首先看看数据库里面的数据(S_Id为自增长标识列): sql server 中返回上一次插入数据的ID(标识值)有三种方式: 第一种 @@IDENTITY: 1 insert into Student ...
- sql server :distinct 与order by 一起使用要注意
一次在sql server 2008 中写sql语句:select distinct firstname,lastname from person order by person_id 错误提示: M ...
- SQL Server 2005 中行号的显示,分页
下面介绍一个SQL Server 2005 中的新东东: ROW_NUMBER 返回结果集分区内行的序列号,每个分区的第一行从 1 开始. 语法: ROW_NUMBER ( ) OVER ( ...
- 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 ...
- SQL Server常用的系统存储过程应用实例(转)
摘要:Sql Server自带的系统存储过程有许多,但大部分我们是不常用的.我在实践中根据自己的体会,总结整理了一些比较常用的,加上一些实例介绍给大家.本期介绍: l sp_attac ...
- SQL Server中row_number函数用法介绍
一.SQL Server Row_number函数简介 ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数. 行号以每个分区中第一行的行号开头. 语法实例: ...
- SQL Server 批量更新字段值为ROW_NUMBER()+列名称
摘要:有这样一个需求,需要把数据表中的列名称的数据按行号重新排序并更新一下,这里用到了ROW_NUMBER()函数. 一:需求如下图: 二:通过执行如下sql语句实现了上面的需求,如下: update ...
- SQL Server数据库基础知识汇总
目录 目录 一.数据库概念 1.1 什么是数据库 1.2 为什么用数据库 1.3 数据库的发展历史 1.4 数据库分类 1.5 DBMS数据库管理系统 二. SQL(Structured Query ...
- Sql Server 2012 分页方法分析(offset and fetch)
最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的.其中 offse ...
最新文章
- fifo 上使用 select -- 转
- memset 还可以这样用
- 腾讯在线教育小程序开发实践之路
- SAP Spartacus B2B页面的BodyContent position
- shell脚本 回顾 小练习
- 10个高效的摸鱼神器,你错过几个?
- mysql 数据库编码怎么看_mysql查看数据库编码
- oracle驱动的区别吗,oracle10g下JDBC驱动包的区别
- matlab多图形相交,用MATLAB作出柱面x^2+y^2=4 和柱面x^2+z^2=4 相交的图形.
- matlab中序列的dtft,dtft的matlab
- 28.XAPP1052驱动详解-WinDriver DMA读写流程
- sql问题导致CPU使用率100%
- c语言写股票交易软件,写股票软件
- S/HIC 系列软件:S/HIC 利用随机森林识别 软/硬 清扫
- 让WMP12成为万能播放器
- 第11章:使用Apriori算法进行关联分析(从频繁项集中挖掘关联规则)
- mmorpg游戏服务器技能系统设计,对MMORPG职业技能设计的一些思考和方法总结
- 消息队列RabbitMQ入门与PHP实战
- 计算机在机械智能制造中的应用,数控技术在智能制造中的应用及发展
- PHP商城 商品模块 数据库 表设计