我在SQL Server中有以下行:
如何交换以红色圈出的数据?
答案 0 :(得分:1)
将原始值放入交换了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)