SQL Server の同じテーブル内の 2 つの行の値を交換する 質問する

SQL Server の同じテーブル内の 2 つの行の値を交換する 質問する

テーブル内の 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)

おすすめ記事