首页 > 代码库 > 【T-SQL系列】新的排序函数
【T-SQL系列】新的排序函数
原文:【T-SQL系列】新的排序函数
如:ROW_NUMBER、RANK、DENSE_RANK
三个分析函数都是按照col1分组内从1开始排序
ROW_NUMBER() 是没有重复值的排序(即使两天记录相等也是不重复的),可以利用它来实现分页
DENSE_RANK() 是连续排序,两个第二名仍然跟着第三名
RANK() 是跳跃拍学,两个第二名下来就是第四名
示例:
DECLARE @t1 TABLE ( Sequence INT , Name VARCHAR(20) , Score INT )INSERT INTO @t1 SELECT 1 , ‘甲‘ , 7 UNION ALL SELECT 2 , ‘甲‘ , 8 UNION ALL SELECT 3 , ‘甲‘ , 8 UNION ALL SELECT 4 , ‘甲‘ , 8 UNION ALL SELECT 5 , ‘甲‘ , 9 UNION ALL SELECT 1 , ‘乙‘ , 10 UNION ALL SELECT 2 , ‘乙‘ , 6 UNION ALL SELECT 3 , ‘乙‘ , 10 UNION ALL SELECT 4 , ‘乙‘ , 6 UNION ALL SELECT 5 , ‘乙‘ , 8SELECT Sequence , Name , Score , ROW_NUMBER() OVER ( ORDER BY Sequence, Score ) AS RowNumber1 , ROW_NUMBER() OVER ( ORDER BY Sequence, Score DESC ) AS RowNumber2 , RANK() OVER ( ORDER BY Score ) AS Rnk , DENSE_RANK() OVER ( ORDER BY Score ) AS DenseRnk , NTILE(15) OVER ( ORDER BY Score ) AS BucketFROM @t1
结果集:
【T-SQL系列】新的排序函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。