Foxtable(狐表)用户栏目专家坐堂 → 向大家请教一条SQL语句。


  共有9530人关注过本帖树形打印复制链接

主题:向大家请教一条SQL语句。

帅哥哟,离线,有人找我吗?
reachtone
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2012/9/29 14:10:00 [显示全部帖子]

假如表名为TB,数据列是SJ:

 

SELECT (SELECT COUNT(*) + 1 FROM TB WHERE SJ > t.SJ) AS ID, SJ FROM TB t ORDER BY SJ DESC

 

如果要替换列值,前面只要再加上update等相关的语句就行。


 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2012/9/29 14:22:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:11.jpg
图片点击可在新窗口打开查看

sql语句是通过的,如果想用update直接更新的话,刚试了下,不行。有空再看看,有点事先忙。


 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2012/9/29 14:37:00 [显示全部帖子]

UPDATE tb
SET sj =
          (SELECT COUNT(*) + 1
         FROM tb
         WHERE sj < t .sj)
FROM tb t

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19363 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2012/9/29 14:40:00 [显示全部帖子]

由于子查询中不能使用order,只能这样更新后再排序了.

如果有重复值,可以在count里加上distinct。


 回到顶部