У меня есть список элементов, которые мне нужны для повторной последовательности без пробелов. Он начинается как:Записи повторной последовательности SQL
ID Sequence
123 1
125 2
155 3
158 4
165 6
170 9
Мне нужно закончить с (Обратите внимание, что последовательность 6 изменений 5 и последовательности 9 изменений 6)
ID Sequence
123 1
125 2
155 3
158 4
165 5
170 6
Я попытался с помощью этого обновления о
UPDATE tblA
SET tblA.Sequence = temp.Sequence
FROM (SELECT id ,
ROW_NUMBER() OVER (ORDER BY Sequence, ID) AS Sequence
FROM dbo.tblA
) AS temp
, но я просто в конечном итоге с ...
ID Sequence
123 1
125 1
155 1
158 6
165 6
170 6
Вытягивание выражения выбора из обновления дает правильные результаты. Изменение его к чему-то вроде
UPDATE tblA
SET tblA.Sequence = temp.NewSequence
FROM (SELECT id ,
ROW_NUMBER() OVER (PARTITION BY id ORDER BY Sequence, id)
AS NewSequence
FROM dbo.tblA
) AS temp
Производит результаты
ID Sequence
123 1
125 1
155 1
158 1
165 1
170 1
Что я делаю неправильно?
Вот что Мне было нужно. Благодаря! – JupiterP5