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

前端之家收集整理的这篇文章主要介绍了SQL UPDATE语句来切换两行中的两个值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用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')

猜你在找的MsSQL相关文章