テーブル内の 2 つの行の値を入れ替えたいです。2 つの行の行 ID があります。これを行うクエリはありますか? 例を示します。クエリの前に次のコードがあります。
行1: 1,2,3 2行目: 5,6,7
交換後、私はこれを望みます:
行1: 5,6,7 行2: 1,2,3
ベストアンサー1
2 つの既知の ID の値を 1 つの行から別の行に交換する場合は、次のようにします。
--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)