Try this script:
DECLARE @tmp TABLE (ID INT IDENTITY(1,1), [Name] VARCHAR(30), Sal INT)
INSERT INTO @tmp ([Name], Sal)
SELECT 'Ram', 1000
UNION ALL SELECT 'Shyam', 2000
UNION ALL SELECT 'John', 3000
UNION ALL SELECT 'Smith', 4000
UPDATE t1
SET t1.Sal = t2.NewSal
FROM @tmp AS t1 INNER JOIN (
SELECT ID, [Name], Sal, CASE WHEN (RowNo % 2) = 0 THEN Sal+(Sal/100*Inc*RowNo*-1) ELSE Sal+(Sal/100*Inc*RowNo) END AS NewSal
FROM (
SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RowNo, ID, [Name], Sal, 5 AS Inc
FROM @tmp
) AS Src
) AS t2 ON t1.ID = t2.ID
SELECT *
FROM @tmp
Result:
ID Name Sal
------------------------------
1 Ram 1050
2 Shyam 1800
3 John 3450
4 Smith 3200
Note: I used
ROW_NUMBER()
function to avoid breaks in
ID
field