sql-server - 如何在 SQL Server 中交换行
问题描述
我在 SQL Server 中有这些行:
如何交换红色圈出的数据?
解决方案
将原始值放入临时表中,并交换 ID,然后在更新表的同时加入临时表,示例代码如下:
--drop temp table if exists
IF OBJECT_ID('tempdb..#Temp', 'U') IS NOT NULL
DROP TABLE #Temp
--need to store the original values
SELECT
*,CASE WHEN Room_Number=9104 then 9103 ELSE 9104 END AS New_Room_Number
INTO #Temp
FROM YourTable
WHERE Room_Number in (9103,9104)
--swap values
UPDATE y
SET Check_IN=t.Check_IN
,Check_OUT=t.Check_OUT
,FullName=t.FullName
,ContactNumber=t.ContactNumber
,Amount=t.Amount
FROM YourTable y
INNER JOIN #Temp t ON y.Room_Number =t.New_Room_Number
WHERE y.Room_Number in (9103,9104)
推荐阅读
- opengl-es - 如何快速翻转 OpenGL ES FBO?
- database - 在 vb.net 中搜索列表视图的数据库按钮
- java - 达到Java JXL中的行限制时如何写入新的xls工作表
- python - 如何在 python 中为 tarfile 模块设置 root 权限?
- python - 如何在不闪烁 python 的情况下更新/清除控制台
- excel - 当 B 列中存在两个值且 A 列中的值相同时计数
- visual-studio-code - 如何将 Pulumi 添加到我的 GitHub Codespaces / VSCode .NET devcontainer?
- components - 隐藏一个外部组件并调用另一个外部组件
- c++ - C ++中重载函数和多个转换运算符的歧义,编译器不同意
- python - rdkit ArgumentError:rdkit.Chem.rdMolDescriptors.GetAtomPairFingerprint(str) 中的 Python 参数类型与 C++ 签名不匹配: