代码改变世界

SQL排序

2012-12-25 17:02  Max蚊子  阅读(232)  评论(0编辑  收藏  举报

Transact-SQL提供了4个排名函数: RANK(),DENSE_RANK(),ROW_NUMBER(),NTILE()

--演示例题,建一个table

create table rankorder( orderid int, qty int ) go 

SELECT orderid,qty,   
    ROW_NUMBER() OVER(ORDER BY qty) AS rownumber,  
    RANK() OVER(ORDER BY qty) AS [rank],   
    DENSE_RANK() OVER(ORDER BY qty) AS denserank ,      
    NTILE(3) OVER(ORDER BY qty) AS [NTILE] 
FROM rankorder 
ORDER BY qty

--结果

--ROW_NUMBER()是按qty由小到大逐一排名,不并列,排名连续

--RANK()是按qty由小到大逐一排名,并列,排名不连续

--DENSE_RANK()是按qty由小到大逐一排名,并列,排名连续

--NTILE()是按qty由小到大分成3组逐一排名,并列,排名连续

网站:feiger.cn         飞鸽博客,关注互联网、站长圈的程序员博客!