首页 > 解决方案 > 想要用第二行更新第一行值,反之亦然,但仅对于一列,其他列值应保持不变

问题描述

表名:学生

ID     Name 
-------------------------
1  ABC

2  PQR

3  XYZ

我想将其更新为:

ID     Name 
-------------------------
2  ABC

1  PQR

3  XYZ

ID 列是主键列。

我尝试了以下方法:

Update student set id =case when id =1 then 2
                            when id= 2 then 1
                            else id
                            end;

标签: sql

解决方案


Select Id, Id As TmpId, Name, Into #tmp from Student

Update #tmp 
Set TmpId = case when id =1 then 2 when id= 2 then 1 else id end

Truncate Table Student

Insert Into Student
Select TmpId, Name From #tmp

推荐阅读