更新语句以增加列值

Update statement to increment column value

请考虑以下设置

Control Group   Sequence
-------------------------
Cont1   Group1  0
Cont2   Group1  1
Cont3   Group1  2
Cont3   Group2  0
Cont2   Group2  1
Cont1   Group2  2

序列递增 +1 序列 >= cont2 序列和相应组

结果应该是

Control Group   Sequence
------------------------
Cont1   Group1  0
Cont2   Group1  2
Cont3   Group1  3
Cont3   Group2  0
Cont2   Group2  2
Cont1   Group2  3

任何人都可以帮助我构造一个 SQL 查询以获得上述结果吗?

我认为这符合您的要求:

update setup
    set sequence = sequence + 1
    where sequence >= (select s2.sequence
                       from setup s2
                       where s2.group = s.group and s2.control = 'Cont2'
                      );

您还可以尝试使用外部应用的替代解决方案:

UPDATE s
    SET s.[Sequence] = s.[Sequence]+1
FROM setup s
OUTER APPLY
(
    SELECT s2.[Sequence]
    FROM setup s2
    WHERE s2.[Group] = s.[Group] AND s2.[Control] = 'Cont2'
)_
WHERE s.[Sequence] >= _.[Sequence]