Если вы принимаете способ ОБНОВЛЕНИЯ столбцов один за другим, вы можете использовать эту следующую опцию.Вам потребуется изменить имена столбцов в 4-х местах в сценарии, как указано ниже.
Помните, что операция обновления является рискованной.Поэтому, пожалуйста, сначала попробуйте ввести данные теста.
Примечание: Да, как сказал @Eric, еще один вариант - Курсор.
UPDATE A
SET col3 = --CHANGE COLUMN NAME HERE
(
SELECT col3 --CHANGE COLUMN NAME HERE
FROM @your_table C
WHERE C.maxTotalInGroup = A.maxTotalInGroup
AND C.rowNum = (
SELECT MAX(B.rowNum)
FROM @your_table B
WHERE B.maxTotalInGroup = A.maxTotalInGroup
AND B.rowNum < A.rowNum
AND B.col3 IS NOT NULL --CHANGE COLUMN NAME HERE
)
)
FROM @your_table A
WHERE col3 IS NULL; --CHANGE COLUMN NAME HERE
Вы можете проверить ДЕМО ЗДЕСЬ