Per eseguire alcuni test su un nuovo campo di tabella, vorrei ritagliare alcuni valori sui record esistenti nel mio database di test. Voglio assegnare un valore ad ogni ottavo record in una tabella. Posso facilmente selezionare ogni ottavo record utilizzando la seguente sintassi:Oracle SQL aggiorna ogni ennesima riga
select *
from
(select rownum rn
, jeffs_field_to_update
from jeff)
where mod(rn, 8) = 0;
Tuttavia, sono abbastanza nuovo per SQL, e io non riesco a essere in grado di convertire questo a una dichiarazione di aggiornamento. Qui vedo un sacco di risposte sulla selezione dell'ennesimo record, ma l'ho già capito. Qualsiasi assistenza sarebbe apprezzata.
La vostra tabella di avere una chiave primaria? Quale ordinamento governa "ogni 8 ° record" o non ti interessa quali righe vengono aggiornate? – APC
Ho finito per usare la risposta di Mikhail, ma per rispondere alla tua domanda, non mi importava quali fossero aggiornati - volevo solo un sottoinsieme consistente, distribuito in tutto il tavolo. – Travis