表格名:TBL_CS1
表格字段FLD_ID FLD_LEVEL FLD_EXP 暂定就这个四个字段,我想实现FLD_LEVEL(级别) 和FLD_EXP(经验) 做一个大排行.
先比对级别(FLD_LEVEL)是否相同 若是相同 再比对 谁的FLD_EXP(经验多) 最后输出他们的顺序 到ID中 从而得出最终排名顺序.
由于MSSQL2000中 不支持 ROW_NUMBER()函数,所以在网上 找的替代的语句.
UPDATE TBL_CS1
SET FLD_ID =
(SELECT COUNT(*)
FROM TBL_CS1 p1
WHERE p1.FLD_LEVEL >= p2.FLD_LEVEL)
FROM TBL_CS1 p2
输出例如:
FLD_ID FLD_LEVEL FLD_EXP
1 59 50000
3 57 80000
3 57 30000
4 56 20000
5 53 60000
5 53 50000
级别相同情况下,虽然按照经验去排了 但是 他们的ID 是一样的 ,并不能从1开始按照顺序往下排
所以请教下大神们, 怎么才能将ID正确的,不重复的排列出来(按照,1,2,3,4,5....),并且设置在FLD_ID 字段内呢
最后强调一下,使用的是MSSQL2000 数据库