Sql Server、Access數(shù)據(jù)排名的實(shí)現(xiàn)方法(例如:成績(jī)排名)
更新時(shí)間:2009年06月17日 21:34:26 作者:
在很多時(shí)候,我們需要統(tǒng)計(jì)數(shù)據(jù)的排名情況,最常見(jiàn)的是成績(jī)、投票數(shù)等等的。
但是,在SQL SERVER 2005 之前,SQL SERVER 2000 并沒(méi)有提供這個(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
對(duì)于 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種情況,來(lái)寫(xiě)出數(shù)據(jù)排名的實(shí)現(xiàn)過(guò)程。測(cè)試數(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
對(duì)于 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問(wèn)題 實(shí)例說(shuō)明
- SQLServer與Access常用SQL函數(shù)區(qū)別
- SQL 隨機(jī)查詢 包括(sqlserver,mysql,access等)
- 在ACCESS和SQL Server下Like 日期類(lèi)型查詢區(qū)別
- Access和SQL Server里面的SQL語(yǔ)句的不同之處
- asp.net下Oracle,SQL Server,Access萬(wàn)能數(shù)據(jù)庫(kù)通用類(lèi)
- SQL SERVER 與ACCESS、EXCEL的數(shù)據(jù)轉(zhuǎn)換方法分享
- 將Access數(shù)據(jù)庫(kù)中數(shù)據(jù)導(dǎo)入到SQL Server中的詳細(xì)方法實(shí)例
- 八步解決ACCESS自動(dòng)編號(hào)問(wèn)題(將SQL SERVER 2000數(shù)據(jù)庫(kù),轉(zhuǎn)換為ACCESS數(shù)據(jù)庫(kù))
- 將ACCESS數(shù)據(jù)庫(kù)遷移到SQLSERVER數(shù)據(jù)庫(kù)兩種方法(圖文詳解)
- sqlserver,sqlite,access數(shù)據(jù)庫(kù)鏈接字符串整理
- 自己動(dòng)手把ACCESS轉(zhuǎn)換到SQLSERVER的方法
- Access 導(dǎo)入到SQL Server 2005的方法小結(jié)
- JavaScript使用ActiveXObject訪問(wèn)Access和SQL Server數(shù)據(jù)庫(kù)
- SQL Server數(shù)據(jù)復(fù)制到的Access兩步走
相關(guān)文章
淺談關(guān)系型數(shù)據(jù)庫(kù)中如何進(jìn)行事務(wù)管理
這篇文章主要介紹了淺談關(guān)系型數(shù)據(jù)庫(kù)中如何進(jìn)行事務(wù)管理,事務(wù)是一組數(shù)據(jù)庫(kù)操作,它們必須全部執(zhí)行或全部回滾,這意味著如果在事務(wù)執(zhí)行期間出現(xiàn)錯(cuò)誤,所有的更改都將撤銷(xiāo),數(shù)據(jù)庫(kù)將被恢復(fù)到事務(wù)開(kāi)始之前的狀態(tài),需要的朋友可以參考下2023-07-07
通過(guò)Qt連接OpenGauss數(shù)據(jù)庫(kù)的詳細(xì)教程
本教程介紹如何通過(guò)Qt連接OpenGauss數(shù)據(jù)庫(kù),在openGauss所在的root環(huán)境下執(zhí)行相關(guān)步驟,需要Windows下配置ODBC數(shù)據(jù)源,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-06-06
mssql 區(qū)分大小寫(xiě)的詳細(xì)說(shuō)明
mssql區(qū)分大小寫(xiě),沒(méi)想到mysql也區(qū)分大小寫(xiě)。相關(guān)的文章稍后奉獻(xiàn)給大家2008-03-03
利用reverse索引優(yōu)化like語(yǔ)句的方法詳解
這篇文章主要介紹了關(guān)于利用reverse索引優(yōu)化like語(yǔ)句的方法,文中通過(guò)圖文介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03
sql學(xué)習(xí)之CASE WHEN THEN ELSE END的用法
這篇文章主要介紹了sql學(xué)習(xí)之CASE WHEN THEN ELSE END的用法,需要的朋友可以參考下2014-06-06

