问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

MSSQL2000 排序问题很急,大家帮忙!

发布网友 发布时间:2023-01-05 00:12

我来回答

4个回答

热心网友 时间:2023-06-26 02:41

CREATE TABLE t_User (
id int IDENTITY(1,1) PRIMARY KEY,
u_Mun int,
u_Top int
);

INSERT INTO t_User
SELECT 1, 0 UNION ALL
SELECT 3, 0 UNION ALL
SELECT 5, 0 UNION ALL
SELECT 2, 0 UNION ALL
SELECT 4, 0 UNION ALL
SELECT 6, 0;
GO

DECLARE
@i INT,
@Mun INT,
@Top INT;
BEGIN
-- 定义游标.
DECLARE c_test_main CURSOR FOR
SELECT u_Mun, u_Top FROM t_User ORDER BY u_Mun DESC
FOR UPDATE;
-- 打开游标.
OPEN c_test_main;
SET @i = 0;
WHILE 1=1
BEGIN
-- 填充数据.
FETCH NEXT FROM c_test_main INTO @Mun, @Top;
-- 假如未检索到数据,退出循环.
IF @@fetch_status != 0 BREAK;
SET @i = @i + 1;
UPDATE t_User SET u_Top = @i WHERE CURRENT OF c_test_main;
END;

-- 关闭游标
CLOSE c_test_main;
-- 释放游标.
DEALLOCATE c_test_main;

END
GO

1> select * from t_User;
2> go
id u_Mun u_Top
----------- ----------- -----------
1 1 6
2 3 4
3 5 2
4 2 5
5 4 3
6 6 1

(6 行受影响)

热心网友 时间:2023-06-26 02:42

Declare @idx int--保存名次
Declare @UserID nvarchar(50)--保存用户ID
Declare @Mun INT--保存积分
Declare @mcur cursor

SET @idx=0

set @mcur=cursor for
select t_UserID,u_Mun
from t_User
order by autoid
open @mcur

FETCH NEXT FROM @mcur INTO @UserID,@Mun
WHILE (@@FETCH_STATUS=0)
BEGIN

SET @idx=@idx+1
update t_User SET u_Top=@idx where t_UserID=@UserID

FETCH NEXT FROM @mcur INTO @UserID,@Mun
End

close @mcur--关闭游标
DEALLOCATE @mcur--释放游标

热心网友 时间:2023-06-26 02:42

为什么要保存这个名次呢?
你还不如按照这个排序输出结果,然后定义一个i=1,循环一次i=i+1,输出名次的同时,也输出i,不是更好?
还能动态、准确的显示名次!!!
望采纳!!

热心网友 时间:2023-06-26 02:43

更新的时候需要用到一个ID字段,你根据你的表结构改下u_id就可以
UPDATE t_User
SET u_Top = b.paim
FROM (SELECT u_id,
RANK() OVER(ORDER BY u_Mun desc) AS paim
FROM t_User) b
WHERE t_User.u_id = b.u_id
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
爱奇艺体育在哪看评论 爱奇艺体育看评论方法 爱奇艺体育怎么查看评论 爱奇艺体育在哪查看评论 查看评论方法介绍 爱奇艺体育在哪看评论 爱奇艺体育查看评论步骤一览 爱奇艺怎么看自己的评论 微信里的钱不能提现怎么办?说是不支持邮政储蓄 你好 我想问下 我的邮政储蓄卡 为什么在微信上可以充值 但不能提现 前三季度车企变速箱投诉出炉,长安、奇瑞自掘坟墓 【车主点评:锐程CC,车身线条优美,动力也很棒】 长安cc锐程cc的语音不说话是怎么回事? 果迷随身wifi怎么充值 MSSQL2000的连接问题。(数据库高手进) 化工紫砂壶鉴别如何鉴别化工紫砂壶 怎么辨别化工紫砂壶 朗诵的基本方法——停顿 北京金慧时代网络科技有限公司怎么样? 我最近收到了北京唐正时代科技有限公司的面试邀请,请问大家这家公司怎么样啊?有没有人了解?多谢 东升时代怎么样?好不好?值不值得买? 北京东升博展科技发展有限公司是国企吗 搜题软件搜索信息会保存多久 微信刚解除加好友限制可以加好友吗微信第二次解封之后能加好友吗? 类风湿和痛风怎么区别 请问类风湿和痛风有什么区别? 风湿,类风湿,痛风,到底有什么区别 痛风跟类风湿的区别 痛风和类风湿有什么不同?大多数人分不清楚,希望了解下 梦见睁不开眼睛 ug怎么把一个实体摆正 华硕笔记本怎么连接wifi 51公斤等多少市斤 thinkphp使用mssql2000问题求助 手机扣扣漫游记录删除了怎么恢复, 一个外国动画片主人公是一个头发有三根毛的小男孩和一只黄色的小鸡 孕妇能不能喝青果泡水? 怀孕6个月,牙龈老是上火,孕妇每天喝青果泡水好吗? 或许你喜欢梅西吗是什么梗 相比于C罗,你会更喜欢梅西吗? 博比特虫能在陆地上生存吗 毛衣可以用洗衣机甩干吗?毛衣甩干要注意这些 qq好友删除后对方会不会知道? 中国音乐学院考级需要报幕吗 境外的信用卡在中国能用吗 c2b2c模式是什么意思 多抓鱼预估价和审核价会差的远吗 气氛组的组长负责什么 「气氛组」提升社群活跃的奥义 星巴克气氛组是什么意思 什么是星巴克气氛组 气氛组和dj有什么区别 图书馆气氛组是什么意思 气氛组是怎么解释的 求好看的快穿文!?
  • 焦点

最新推荐

猜你喜欢

热门推荐