- 31
- 0
- 约4.02千字
- 约 6页
- 2016-11-28 发布于贵州
- 举报
SQLServr 2005 实现排序报表的利器 排序函数RANK()、DENSE_RANK()、NTILE()和ROW_NUMBER()
SQLServer 2005 新增了排名函数,一共四个,其中RANK() DENSE_RANK() NTILE()这三个函数是制作带有排名列报表的利器,ROW_NUMBER()函数在分页存储过程中被广泛使用
排名函数有一个明显的共性,就是与over()子句配合使用
与排名函数一起使用的over()子句有两个参数 partition 分组方式 order by 排序方式
RANK()和DENSE_RANK()是一对兄弟,唯一的不同是
当使用RANK()进行排名时 由于order by 参数 的值可能存在相等的情况,比如有两个第一,那么下一个会被排名在第三,即使用RANK()排名时,得到数值并不是连续的(1、1、3),而是用DENSE_RANK()时,得到的永远是连续的(1、1、2).
语法:
RANK ( ) OVER ( [ partition_by_clause ] order_by_clause )
DENSE_RANK ( ) OVER ( [ partition_by_clause ] order_by_clause )
示例:
USE AdventureWorks;
GO
SELECT i.ProductID, p.Name, i.LocationID, i.Quant
原创力文档

文档评论(0)