SQL 2005实现排名非常方便,但是用SQL 2000实现排名就比较麻烦,下面是SQL 2000的实现代码:
–RANK在sql 2000中的实现
select orderid,qty, (select count(1)+1 from rankorder where qty from rankorder r ORDER BY qty go |
–ROW_NUMBER在sql 2000中的实现
–利用临时表和IDENTITY(函数)
select identity(int,1,1) as [ROW_NUMBER],orderid,qty into #tem from rankorder select orderid,qty,[ROW_NUMBER] from #tem drop table #tem go –DENSE_RANK在sql 2000中的实现 select identity(int,1,1) as ids, qty into #t from rankorder group by qty order by qty select r.orderid,r.qty,t.ids as [DENSE_RANK] from rankorder r join #t t on r.qty=t.qty drop table #t go |
排名函数是与窗口函数OVER()配合一起使用的。
如果借助OVER子句的参数PARTITION BY,就可以将结果集分为多个分区。排名函数将在每个分区内进行排名.
–例题
select orderid,qty, DENSE_RANK() OVER(ORDER BY qty) AS a , DENSE_RANK() OVER(PARTITION BY orderid ORDER BY qty) AS b FROM rankorder ORDER BY qty |
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号

TechTarget
官方微博

TechTarget中国
作者
相关推荐
-
SQL Server 2005学习总结:排名函数(一)
SQL Server 2005中有哪些排名函数?本文主要是对以下四个排名函数的解释,包括RANK(),DENSE_RANK(),ROW_NUMBER(),NTILE()。
-
SQL Server 2005学习总结:排名函数(四)
SQL Server2005包括哪些排名函数?Transact-SQL提供了4个排名函数。本文介绍了这4个排名函数的类比表格。
-
SQL Server 2005学习总结:排名函数(二)
SQL Server 2005中包含四个排名函数:RANK(),DENSE_RANK(),ROW_NUMBER(),NTILE(),本文通过实例介绍如何创建table。