web-dev-qa-db-fra.com

Comment mettre à jour la colonne liée au numéro de ligne

Y a-t-il un moyen facile de mettre à jour la colonne par numéro de rangée et non un PK Ex:

UPDATE contact m
SET    ContactNumber = sub.rn + 500
FROM  (SELECT Id, row_number() OVER (ORDER BY Id) AS rn FROM contact) sub
WHERE  m.Id = sub.Id;
3
Mokh Akh

J'ai la réponse :)

UPDATE contact m
join 
(
   SELECT Id, @rownum:=@rownum+1 rownum FROM contact
   CROSS JOIN (select @rownum := 0) rn
   order by contact.Id
) as sub on sub.Id= m.Id 
set m.ContactNumber = sub.rownum + 500
where m.Client_Id=1
1
Mokh Akh