To update records in a single query, try something like this:
UPDATE t1
SET t1.x = t2.x
t1.y = t2.y
t1.z = t2.z
FROM (
SELECT *, ROW_NUMBER() OVER(ORDER BY w) AS RowNo
FROM table1
WHERE w IN (5,6,7)
) AS t1 INNER JOIN (
SELECT *, ROW_NUMBER() OVER(ORDER BY w) AS RowNo
FROM table1
WHERE w IN (1,2,3)
) AS t2 ON t1.RowNo = t2.RowNo