我使用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')