Sql Server、Access數(shù)據(jù)排名的實(shí)現(xiàn)方法(例如:成績排名)
更新時(shí)間:2009年06月17日 21:34:26 作者:
在很多時(shí)候,我們需要統(tǒng)計(jì)數(shù)據(jù)的排名情況,最常見的是成績、投票數(shù)等等的。
但是,在SQL SERVER 2005 之前,SQL SERVER 2000 并沒有提供這個(gè)直接的函數(shù)供我們使用,同樣 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;
下面我們分2種情況,來寫出數(shù)據(jù)排名的實(shí)現(xiàn)過程。測試數(shù)據(jù)如下:

排名后的結(jié)果如下:

Access
復(fù)制代碼 代碼如下:
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
復(fù)制代碼 代碼如下:
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 及更高版本
復(fù)制代碼 代碼如下:
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;
您可能感興趣的文章:
- SQL Server中的數(shù)據(jù)復(fù)制到的Access中的函數(shù)
- Access轉(zhuǎn)Sql Server問題 實(shí)例說明
- SQLServer與Access常用SQL函數(shù)區(qū)別
- SQL 隨機(jī)查詢 包括(sqlserver,mysql,access等)
- 在ACCESS和SQL Server下Like 日期類型查詢區(qū)別
- Access和SQL Server里面的SQL語句的不同之處
- asp.net下Oracle,SQL Server,Access萬能數(shù)據(jù)庫通用類
- SQL SERVER 與ACCESS、EXCEL的數(shù)據(jù)轉(zhuǎn)換方法分享
- 將Access數(shù)據(jù)庫中數(shù)據(jù)導(dǎo)入到SQL Server中的詳細(xì)方法實(shí)例
- 八步解決ACCESS自動(dòng)編號問題(將SQL SERVER 2000數(shù)據(jù)庫,轉(zhuǎn)換為ACCESS數(shù)據(jù)庫)
- 將ACCESS數(shù)據(jù)庫遷移到SQLSERVER數(shù)據(jù)庫兩種方法(圖文詳解)
- sqlserver,sqlite,access數(shù)據(jù)庫鏈接字符串整理
- 自己動(dòng)手把ACCESS轉(zhuǎn)換到SQLSERVER的方法
- Access 導(dǎo)入到SQL Server 2005的方法小結(jié)
- JavaScript使用ActiveXObject訪問Access和SQL Server數(shù)據(jù)庫
- SQL Server數(shù)據(jù)復(fù)制到的Access兩步走
相關(guān)文章
淺談關(guān)系型數(shù)據(jù)庫中如何進(jìn)行事務(wù)管理
這篇文章主要介紹了淺談關(guān)系型數(shù)據(jù)庫中如何進(jìn)行事務(wù)管理,事務(wù)是一組數(shù)據(jù)庫操作,它們必須全部執(zhí)行或全部回滾,這意味著如果在事務(wù)執(zhí)行期間出現(xiàn)錯(cuò)誤,所有的更改都將撤銷,數(shù)據(jù)庫將被恢復(fù)到事務(wù)開始之前的狀態(tài),需要的朋友可以參考下2023-07-07
通過Qt連接OpenGauss數(shù)據(jù)庫的詳細(xì)教程
本教程介紹如何通過Qt連接OpenGauss數(shù)據(jù)庫,在openGauss所在的root環(huán)境下執(zhí)行相關(guān)步驟,需要Windows下配置ODBC數(shù)據(jù)源,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-06-06
sql學(xué)習(xí)之CASE WHEN THEN ELSE END的用法
這篇文章主要介紹了sql學(xué)習(xí)之CASE WHEN THEN ELSE END的用法,需要的朋友可以參考下2014-06-06

