Bing Yee程序人生

关注互联网产品技术学习,应用开发~

MSSQL2005 四个排名函数(新功能) row_number,rank,dense_rank,ntile(一)

2011/8/7 12:57:55 类别:数据库
摘要:最近在项目实例中涉及到数据库版本问题,所以顺便整理下SQL2005的一些特性,本文主要介绍SQL Server 2005 新的语法四大排名函数之一ROW_NUMBER()进行查询,以及应用于分页的实例

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函数

2743次阅读  标签:排名函数,row_number,分页
下一篇:IIS7.0和APACHE 如何共享80端口(多IP)
上一篇:思淇关键词工具(V1.1)更新完毕

共32条评论

babyliss(1楼)-2013/12/19 10:38:08
审核中

babyliss(2楼)-2013/12/28 10:55:01
审核中

babyliss(3楼)-2014/1/1 18:29:56
审核中

ヴィクトリアシークレット激安(4楼)-2014/3/28 6:48:08
审核中

home(5楼)-2016/11/4 8:59:31
审核中

home(6楼)-2016/11/23 16:40:14
审核中

Keytnildign(7楼)-2020/4/22 23:54:37
审核中

发表评论

文章分类


友情链接