Récupérer des lignes de manière aléatoire ? [Oracle] [SQL] - Programmation
Marsh Posté le 08-06-2001 à 14:06:12
Tu as le rownum, ce qui n'est pas vraiment aléatoire mais peut convenir à ta situation.
Un where rownum between min and max marchera-t-il? Là, par contre, j'en sais trop rien
Marsh Posté le 08-06-2001 à 14:24:27
Non j'y avais pensé, mais le rownum est attribué (et incrémenté) en fonction de la date d'insertion dans la base. Je vais me retrouver avec les ventes effectuées entre le 1er et le 5 octobre 2000, : ce n'est carrément pas aléatoire ça
[edit]--Message édité par irulan--[/edit]
Marsh Posté le 08-06-2001 à 14:34:44
Je ne sais pas pour ORACLE, mais avec MySQL tu peux utiliser l'option RAND(), par exemple :
"SELECT * FROM ma_table ORDER BY RAND() LIMIT ..."
A voir ??
Marsh Posté le 08-06-2001 à 15:14:25
avec SQL server de Crosoft tu peux faire:
select top 200 * from ta_table where ta_condition
Cela sortira les 200 enregistrements pris au hasard.
Marsh Posté le 08-06-2001 à 16:57:53
haloween > ben oui mais l'embêtant c'est que c'est sur Oracle donc top 200*, connais pas
fly LM > pas trouvé d'équivalent de RAND() LIMIT sous Oracle. Quelqu'un connait une syntaxe (ou un script ) pour ce genre de truc ?
Marsh Posté le 08-06-2001 à 19:07:45
Oracle 8i introduit le mot_cle SAMPLE qui permet d'obtenir un echantillon aleatoire sur une table ...
Marsh Posté le 08-06-2001 à 22:32:04
Gonzoïde > Ok merci pour l'info, j'essaierai dès lundi ton truc.
(VRP roulaize )
Marsh Posté le 08-06-2001 à 13:58:16
Voilà mon problème : j'ai une table avec mettons 100 000 enregistrements.
Il faudrait que je fasse un extract de 200 lignes par exemple, prises de façon aléatoire parmi les 100000.
Quelqu'un aurait une idée pour générer des nombres au hasard avec Oracle ? (je pensais par exemple ajouter une colonne avec un nombre X pris au hasard, et prendre ensuite les 200 premières lignes correspondant à une valeur donnée de X).
Ou mieux quelqu'un saurait directement comment sélectionner des lignes aléatoirement (même si c'est du pseudo aléatoire )?