SQL2008排名函数

排名函数的常用使用格式:函数名() over (order by 列名 [asc|desc][,列名……])

注意:返回结果集会根据使用排名函数时指定的列进行排序,因此不要在 from 子句后面再次使用 order by,会导致排名混乱。

row_number无参数

select roductID,[Name],ListPrice, row_number()

 over(order by ListPrice desc) as rank 

from Production.Product

为结果集内每一行进行编号,从1开始后面行依次加 1。

rank无参数

select ProductID,[Name],ListPrice,rank()

over(order by ListPrice desc) as rank

from Production.Product

如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名,排名不连续。例如,如果有价格最高的两种产品的价格相同,它们将列第一。由于已有两行排名在前,所以具有下一个最高价格的产品将排名第三。该排名等于该行之前的所有行数加一。因此,RANK 函数并不总返回连续整数。

dense_rank无参数

select

ProductID,[Name],ListPrice,dense_ rank()

over(order by ListPrice desc) as rank

from Production.Product

如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名,排名连续。

例如,如果有价格最高的两种产品的价格相同,它们将并列第一,下一个最高价

格的产品将排名第二。因此,DENSE_RANK 函数返回的数字没有间断,并且始终具有连续的排名。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值