Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL UPDATE-Anweisung zum Vertauschen von zwei Werten in zwei Zeilen

Wenn 'Peter' und 'Steve' in Ihrer Tabelle einzigartig sind, reicht dies aus:

UPDATE TableX
SET ord = ( SELECT MIN(ord) + MAX(ord) 
            FROM TableX 
            WHERE name IN ('Peter', 'Steve')
          ) - ord
WHERE name IN ('Peter', 'Steve')

oder (verbessert von @Erwin):

UPDATE TableX
SET ord = ( SELECT SUM(ord) 
            FROM TableX 
            WHERE name IN ('Peter', 'Steve')
          ) - ord
WHERE name IN ('Peter', 'Steve')