2011-01-04 6 views
2

J'ai actuellement une table oracle (lovalarm) contenant environ 600 000 lignes. Je dois être en mesure d'exécuter une requête qui permet de faire défiler chaque ligne et mettre à jour un champ (lovsiteid) à un nombre aléatoire entre 14300 et 17300.insérer un nombre aléatoire dans chaque ligne de la table

Jusqu'à présent, j'ai:

update lovalarm 
set lovsiteid = (select TRUNC(dbms_random.value(14300,17300)) FROM dual) 

Malheureusement, ce choix un nombre aléatoire, puis met à jour toutes les lignes avec le même nombre qui n'est pas exactement ce que je suis après!

Quelqu'un peut-il me diriger dans la bonne direction?

Un grand merci, Cap

Répondre

6

Juste pas utiliser sous-requête:

update lovalarm 
set lovsiteid = TRUNC(dbms_random.value(14300,17300)) 
+0

Ha! Spot on, incroyable comme c'est simple :) merci beaucoup! – Captastic

-1

Essayez ceci:

update lovalarm set lovsiteid = (select FLOOR(RAND() * (17300 - 14300) + 14300)) 

œuvres dans MySQL

+0

-1 pour l'affichage d'une solution sans rapport avec le SGBD de l'annonceur –

Questions connexes