场景
最近在做项目的时候 遇到自己排名 和整体排名不一致 在此记录一下解决方法
一般排法
--查询昵称为L的排行第几
SELECT COUNT(1) FROM EnergyAccounts WHERE AccEnergy>=12
--整体排行
SELECT NickName,AccEnergy FROM EnergyAccounts ORDER BY AccEnergy DESC
目前是一个简单的按AccEnergy排序倒叙从大到小排
从中可以看到AccEnergy为12的有2个人 到底谁先谁后呢
结果是: L排的时候是7 且排行列表是6
加强版排法
--查询昵称为L的排行第几
SELECT t.rowid AS L的排名 FROM
(SELECT
ROW_NUMBER() OVER(ORDER BY AccEnergy DESC,id DESC) AS rowid,
NickName
FROM EnergyAccounts
WHERE AccEnergy>=12) t
WHERE t.NickName='L'
--整体排行
SELECT TOP 50
ROW_NUMBER() OVER(ORDER BY AccEnergy DESC,id DESC) AS rowid, NickName,
AccEnergy
FROM EnergyAccounts
很清楚的就能看清楚L排名没有出现错误
大家如果有什么更好的方法可以联系我QQ:806105498 微信:18574774837