更新语句以增加列值
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]
请考虑以下设置
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]