加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL UPDATE语句来切换两行中的两个值

发布时间:2020-12-12 16:17:24 所属栏目:MsSql教程 来源:网络整理
导读:我使用SQL Server交换两行中的两个值.让我展示: [ord] [name]1 John4 Jack7 Pete9 Steve11 Mary 说,我需要交换“皮特”和“史蒂夫”的数字,使这张表如此: [ord] [name]1 John4 Jack9 Pete7 Steve11 Mary 这似乎是一个微不足道的任务,但我似乎不能为它编写一
我使用SQL Server交换两行中的两个值.让我展示:
[ord] [name]
1     John
4     Jack
7     Pete
9     Steve
11    Mary

说,我需要交换“皮特”和“史蒂夫”的数字,使这张表如此:

[ord] [name]
1     John
4     Jack
9     Pete
7     Steve
11    Mary

这似乎是一个微不足道的任务,但我似乎不能为它编写一个SQL UPDATE语句.

解决方法

如果“彼得”和“史蒂夫”在表中是独一无二的,那么这样做:
UPDATE TableX
SET ord = ( SELECT MIN(ord) + MAX(ord) 
            FROM TableX 
            WHERE name IN ('Peter','Steve')
          ) - ord
WHERE name IN ('Peter','Steve')

或(由@Erwin改进):

UPDATE TableX
SET ord = ( SELECT SUM(ord) 
            FROM TableX 
            WHERE name IN ('Peter','Steve')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读