我有一个表,它有一个唯一的 ID 列,它是一个 int。这不一定包含最大的所有数字,有些被遗漏了(它不是身份列 - 我无法控制)。
我需要从该表中选择一些现有行并将它们添加到末尾以更改一列的数据,每一行都有一个新 ID,从 MAX ID 递增。像这样的东西:
declare @maxID int;
set @maxID = (select MAX("ID") from "table");
insert into "table"
select @maxID + ROW_NUMBER, 'newData', "col3", "col4"
from "table" where "col2" = 'oldData';
但是,我不确定从哪里获取它 - ROW_NUMBER 需要一个 OVER 语句,在这种情况下我真的不明白。
有什么帮助吗?