程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> Sql Server、Access數據排名的實現方法(例如:成績排名)

Sql Server、Access數據排名的實現方法(例如:成績排名)

編輯:更多數據庫知識
但是,在SQL SERVER 2005 之前,SQL SERVER 2000 並沒有提供這個直接的函數供我們使用,同樣 ACCESS 也是如此。

下面我們分2種情況,來寫出數據排名的實現過程。測試數據如下:

database rank

排名後的結果如下:

sql server rank
Access
復制代碼 代碼如下:
select name, score, (select iif(isnull(sum(1)), 1, sum(1) + 1) from score_rank where score > a.score) as rank from score_rank a order by score desc

sqlserver
復制代碼 代碼如下:
select name, score, (select ISNULL(sum(1),0) + 1 from score_rank where score > a.score) as rank from score_rank a order by score desc

對於 SQL SERVER 2005 及更高版本
復制代碼 代碼如下:
SELECT name, score, RANK() OVER (ORDER BY score DESC) AS [rank], DENSE_RANK() OVER (ORDER BY score DESC) AS [rank1], NTILE(4) OVER(ORDER BY score DESC) AS [rank2] FROM score_rank ORDER BY score DESC;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved