У меня есть эта таблица с именем Employee:
IdEmploye | Order 10 1 17 5 102 6 66 77
Я хочу переставить эту таблицу в эту:
IdEmploye | Order 10 1 17 2 102 3 66 4
Как это возможно в SQL?
Спасибо!
SQL Сервер поддерживает использование ROW_NUMBER (), поэтому вы попадете туда.
UPDATE tbl SET [Order] = sub.NewOrder from tbl JOIN (select IdEmploye, ROW_NUMBER() OVER (ORDER BY IdEmploye) as NewOrder from tbl) as sub ON sub.IdEmploye = tbl.IdEmploye;
Вы можете использовать CTE :
with empupdt as ( select e.*, row_number() over (order by IdEmployee) as seq from employee e ) update empupdt set Order = seq;
Вы можете сделать прямое обновление
Update tbl Set Order = IdEmploye