注册 登录
编程论坛 SQL Server论坛

请教SQL2000,排序问题,有大神看到的话帮忙解决一下

ytgytg28 发布于 2022-04-24 14:51, 954 次点击
表格名: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  数据库
0 回复
1