排名函数是SQL Server2005新加的功能。在SQL Server2005中有如下四个排名函数:
1. row_number 自动生成行号,序号由order by 字段决定
2. rank over Filed, 由rank over的字段决定,名次不连续,如有3个并列第一名,则后续名次直接从4开始
3. dense_rank,和rank相似,只是名次连续,如有3个并列第一名,则后续名次从2开始
4. ntile 提供均匀分组的排序函数,函数参数为分组的个数,如有10条记录返回,ntile参数指定为4,则各组记录数如下
1(3),2(3),3(2),4(2)
select
ntile(4) over(order by object_ID) as bucket,name from ( select top 10 * from sys.objects) x
bucket Name -------------------- -------------------------------------------------------------------------------------------------------------------------------- 1 sysrowsetcolumns 1 sysrowsets 1 sysallocunits 2 sysfiles1 2 syshobtcolumns 2 syshobts 3 sysftinds 3 sysserefs 4 sysowners 4 sysdbreg

本文详细介绍了SQLServer2005中新增的四种排名函数:row_number、rankoverFiled、dense_rank和ntile。通过这些函数可以实现自动生成行号、名次排序及均匀分组等功能。
172

被折叠的 条评论
为什么被折叠?



