为了对新表字段进行一些测试,我想在测试数据库中的现有记录上伪造一些值。我想为表中的每第8条记录分配一个值。我可以使用以下语法轻松地选择每8条记录:
select *
from
(select rownum rn
, jeffs_field_to_update
from jeff)
where mod(rn, 8) = 0;
但是,我对SQL还是很陌生,而且似乎无法将其转换为更新语句。我在这里看到了很多有关选择第n条记录的答案,但是我已经知道了。任何援助将不胜感激。
最佳答案
您需要将此表中的任何键都连接到UPDATE语句。例如,如果您具有唯一的id列,则update语句将如下所示:
update jeff
set jeffs_field_to_update = value
where id in
(select id
from
(select rownum rn
, jeff.id
from jeff)
where mod(rn, 8) = 0)
关于sql - Oracle SQL每n行更新一次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17236333/