Server 2005 ROW_NUMBER() over(order by *) 使用

原创 2007年10月09日 12:23:00

有時候我們需要這樣的處理:查詢出某資料表中的 M 到N筆資料.比如取出表A中第31筆到40数据(primary key: ID为自动编号,ID可能不是连续的)

在2000中我們可以這樣處理   select top (40-31+1) * from EmpSalay WHERE EmpID NOT IN (SELECT top(30-1) EmpID FROM [EmpSalay] order by EmpID )    用top 來返回M 到N筆資料可以完成上面的動作.但是這個處理的限制也比較多比如ID要遞增.

現在2005提供了一個函數ROW_NUMBER() 來處理這樣的問題.很简单,ROW_NUMBER() 就是生成一个顺序的行号,而他生成顺序的标准,就是后面紧跟的OVER(ORDER BY youID).下面方法用SQL2005 提供的函數ROW_NUMBER() 來處理 M 到N筆資料的問題

 (select *, ROW_NUMBER() over (order by EmpID) as row_number from EmpSalay)as temp where temp.row_number>=31 and temp.row_number<=40

下面的文章同樣可以解決該問題

Server 2005 中CET結合ROW_NUMBER()函數解決取得特定筆數資料的問題

SQL 高效分页(百万条数据)ROW_NUMBER() OVER (ORDER BY id) | 分页

第一种方法效率最高 SELECT TOP 页大小 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM ta...
  • Fanbin168
  • Fanbin168
  • 2014年12月05日 17:07
  • 8207

【SQL】—Oracle之row_number()与rownum效率大比拼

取前面11条数据的时间:rownum
  • u012654963
  • u012654963
  • 2016年08月05日 15:21
  • 2223

sql over开窗函数 和group by的区别

OVER子句   OVER子句用于为行为定义一个窗口(windows),以便进行特定的运算。可以把行的窗口简单地认为是运算将要操作的一个行的集合。例如,聚合函数和排名函数都是可以支持OVER子句...
  • waj89757
  • waj89757
  • 2013年05月23日 17:09
  • 2262

row_number over(order by id desc)语句进行存储过程高效分页,百度分页(1,2,3,4,5....)

模仿百度分页示意效果图: sql procdure code: create   proc [dbo].[MyPages](  @tableName varchar(155),  @pag...
  • xiaolongit
  • xiaolongit
  • 2012年12月12日 15:24
  • 1098

MySQL实现SQLServer ROW_NUMBER() OVER ORDER BY

table data SQLServer 实现: SELECT ROW_NUMBER() OVER (PARTITION BY Customer ORDER BY OrderDate DESC)...
  • lixiaopeng913
  • lixiaopeng913
  • 2015年05月29日 13:10
  • 624

SQL 分页支持查询 ROW_NUMBER() OVER (ORDER BY ReportID) AS RowNo

分页例子***create proceure test( @pageindex int, @pageSize int ) as begin select * from ( select...
  • xinghuo0007
  • xinghuo0007
  • 2016年11月20日 18:21
  • 471

SQL 高效分页(百万条数据)ROW_NUMBER() OVER (ORDER BY id) | 分页

第一种方法:效率最高[sql] view plain copy SELECT TOP 页大小 * FROM ( SELECT ROW_NUMBER() OVER...
  • hyunbar
  • hyunbar
  • 2017年10月31日 10:58
  • 78

SqlServer 分页 ROW_NUMBER() OVER(Order by * DESC ) AS RowNumber

语法如下: select * from (      select *, ROW_NUMBER() OVER(Order by a.CreateTime DESC ) AS RowNumber fro...
  • luckysiesteven
  • luckysiesteven
  • 2015年03月03日 13:30
  • 1866

row_number()over(partition by col1 order by col2)

OVER(PARTITION BY)函数介绍 开窗函数                Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数...
  • ghvbngf
  • ghvbngf
  • 2013年12月17日 16:32
  • 1375

row_number() over (partition by....order by...)用法

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编...
  • hulua2010
  • hulua2010
  • 2015年07月20日 16:51
  • 238
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Server 2005 ROW_NUMBER() over(order by *) 使用
举报原因:
原因补充:

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