我想交换表中两行的值。我有两行的行 ID。有任何查询可以做到这一点吗?这是一个例子。在查询之前我有这个:
row1 : 1,2,3 row2 : 5,6,7
交换后我想要这个:
row1 : 5,6,7 row2 : 1,2,3
最佳答案
如果您想将两个已知 ID 的值从一行交换到另一行,请尝试如下操作:
--need to store the original values
SELECT
*,CASE WHEN id=123 then 987 ELSE 123 END AS JoinId
INTO #Temp
FROM YourTable
WHERE ID in (123,987)
--swap values
UPDATE y
SET col1=t.col1
,col2=t.col2
FROM YourTable y
INNER JOIN #Temp t ON y.id =t.JoinId
WHERE ID in (123,987)
关于sql - 交换 SQL Server 中同一个表中两行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2758415/