Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Instrução SQL UPDATE para alternar dois valores em duas linhas


Se 'Peter' e 'Steve' são únicos em sua tabela, isso fará:
UPDATE TableX
SET ord = ( SELECT MIN(ord) + MAX(ord) 
            FROM TableX 
            WHERE name IN ('Peter', 'Steve')
          ) - ord
WHERE name IN ('Peter', 'Steve')

ou (melhorado por @Erwin):
UPDATE TableX
SET ord = ( SELECT SUM(ord) 
            FROM TableX 
            WHERE name IN ('Peter', 'Steve')
          ) - ord
WHERE name IN ('Peter', 'Steve')