Oracle SQL每隔第n行更新一次

Tra*_*vis 5 sql oracle sql-update

要对新表字段进行一些测试,我想假设我的测试数据库中现有记录的一些值.我想为表中的每第8条记录分配一个值.我可以使用以下语法轻松选择每个第8条记录:

select *
from 
  (select rownum rn
    , jeffs_field_to_update
  from jeff)
where mod(rn, 8) = 0;
Run Code Online (Sandbox Code Playgroud)

但是,我对SQL很新,我似乎无法将其转换为更新语句.我在这里看到很多关于选择第n条记录的答案,但我已经知道了.任何援助将不胜感激.

Mik*_*ail 5

您需要将此连接到表中任何键的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)
Run Code Online (Sandbox Code Playgroud)