Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3191 connectés 

  FORUM HardWare.fr
  Programmation

  [Oracle] [SQL] Récupérer des lignes de manière aléatoire ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Oracle] [SQL] Récupérer des lignes de manière aléatoire ?

n°38154
irulan
Posté le 08-06-2001 à 13:58:16  profilanswer
 

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 ;) )?

mood
Publicité
Posté le 08-06-2001 à 13:58:16  profilanswer
 

n°38158
Fred999
Rabat-joie
Posté le 08-06-2001 à 14:06:12  profilanswer
 

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 :D

n°38167
irulan
Posté le 08-06-2001 à 14:24:27  profilanswer
 

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 :D

 

[edit]--Message édité par irulan--[/edit]

n°38175
FLY LM
Posté le 08-06-2001 à 14:34:44  profilanswer
 

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 ??

n°38191
haloween
Posté le 08-06-2001 à 15:14:25  profilanswer
 

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.

n°38241
irulan
Posté le 08-06-2001 à 16:57:53  profilanswer
 

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 ?

n°38265
Gonzoide
Les cochons... dans l'espâââce
Posté le 08-06-2001 à 19:07:45  profilanswer
 

Oracle 8i introduit le mot_cle SAMPLE qui permet d'obtenir un echantillon aleatoire sur une table ...

n°38304
irulan
Posté le 08-06-2001 à 22:32:04  profilanswer
 

Gonzoïde > Ok merci pour l'info, j'essaierai dès lundi ton truc.
(VRP roulaize ;):sol:)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Oracle] [SQL] Récupérer des lignes de manière aléatoire ?

 

Sujets relatifs
[SQL]Requetes imbriqués[WEBSPHERE] recuperer environnement d'EJB
Comment exporer un formulaire forms pour oracle afin de l'executerComment modifier le propriétaire d'une table sous SQL Server 7 ?
[Delphi]Comment récuperer les messages d'erreurs renvoye par net send?[IE + NT4] Recuperer le userId en JavaScript/VBS/n'importe quoi ?
[PHP & ORACLE] session & persistent connection[VC]Comment recuperer l'heure
nombre aleatoire et cComment rajouter des lignes au menu contextuel du click droit ?
Plus de sujets relatifs à : [Oracle] [SQL] Récupérer des lignes de manière aléatoire ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR