MSSQL2005 四个排名函数(新功能) row_number,rank,dense_rank,ntile(一)
2011/8/7 12:57:55 类别:数据库MSSQL排名函数是SQL Server2005新增特性。在SQL Server2005中有四个排名函数:
1,row_number
2,rank
3, dense_rank
4, ntile
本文主要介绍第一个row_number
其功能是为查询结果增加一个自动排序列(目前应用最多的是在分页,让分页变得简单 取分页结果一句SQL即可解决之前可能需要一个存储过程来解决的问题)
常用使用方法如下:select row_number() over(order by orderfiled) as row_number,* from table,输出结果(转)
row_number speaker track score
------ ---------- ---------- -----------
1 Jessica Dev 9
2 Ron Dev 9
3 Suzanne DB 9
4 Kathy Sys 8
5 Michele Sys 8
6 Mike DB 8
7 Kevin DB 7
8 Brian Sys 7
9 Joe Dev 6
10 Robert Dev 6
即在原有的基础上多出一个排序列 row_number
这是row_number的基础功能,至于应用于何功能的 嵌套到另外的SQL里组合查询,就看你的需求了.
这里我主要将下分页查询,结合between and 语句实现的分页记录读取
select Id,Name from (select row_number() over(order by id) as rowNum,* from users) as t where rowNum between 5000 and 5100 --between and 中取pagesize*page 到 pagesize*(page+1)
下一节主要介绍一下Rank函数