Vì id người dùng giống nhau trong tất cả các hàng, bạn sẽ nhận được cùng một giá trị cho độ tuổi.
Điều này có thể được giải quyết bằng cách sử dụng CTE
, như thế này:
;with cte as
(
select id, userid, age, ROW_NUMBER() OVER(order by id) rn
FROM #tempMock
)
UPDATE t1
SET t1.age = t2.age
FROM #temp t1
INNER JOIN cte t2 ON t1.userid = t2.userid and t1.id = t2.rn+1;