Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Mettre à jour la requête dans SQL Server via JOINS

Étant donné que l'ID utilisateur est le même dans toutes les lignes, vous obtenez la même valeur pour l'âge.
Ce problème peut être résolu à l'aide d'un CTE , comme ceci :

;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;

voir violon ici