sql - 想要用第二行更新第一行值,反之亦然,但仅对于一列,其他列值应保持不变
问题描述
表名:学生
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;
解决方案
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
推荐阅读
- python - 从内存中永久删除精灵 Pygame
- json - JSON Schema 是否支持深度对象验证?
- amazon-web-services - 无法让 Mosquitto <-> AWS IoT -bridge 保持连接
- javascript - Formik - 状态和初始值被覆盖
- android - 错误:命令失败:./gradlew app:installDebug -PreactNativeDevServerPort=8081
- smartcontracts - 为什么像 signer_account_id 这样的环境变量会导致错误:ProhibitedInView?
- jquery - jQuery 日期选择器。我如何从 Jquery datepicker 中获取年份
- r - 在 R 中使用 get() 的问题 - 找不到对象(可能与环境有关?)
- .net - 如何在 Powershell 中删除表头并转换为日期类型?
- godot - 使用 InputEventScreenTouch 缩放时的 TileMap 坐标错误