OVH Cloud OVH Cloud

Enregistrement aléatoire

1 réponse
Avatar
Doft
Re bonjour!

J'utilise la fonction Randomizer pour s=E9lectionner un nbre=20
d'enregistrement al=E9atoire dans une table voici le code:

"SELECT top n enregistrements.......AND Randomizer() =3D 0=20
order by rnd(isnull(Table.Champs) * 0 + 1) ;"

Voici le code de la function randomizer:
Function Randomizer() As Integer
Static AlreadyDone As Integer
If AlreadyDone =3D False Then Randomize: AlreadyDone =3D=20
True
Randomizer =3D 0
End Function

Or la function randomizer me renvoie des doublons???
Quelqu'un connaitrait-il la solution pour me renvoyer un=20
r=E9sultat sans doublon?

Meci de votre aide!

1 réponse

Avatar
Daniel Carollo
Bonjour Doft!

La source de vos enregistrements contient-elle des doublons? Si c'est le
cas, utilisez une requete avec SELECT DISTINCT comme source pour dedoubler
les enregistrements. A vue de nez, il n'y a rien dans la fonction
randomizer() qui evite les doublons, c'est juste une fonction qui oblige de
demarrer le rnd a une valeur differente a chaque appel de la requete.

Le nombre d'enregistrments n'est pas aleatoire, puisqu'il est n. C'est
seulement l'ordre de ces enregistrments qui est aleatoire (dans la mesure de
la fonction rnd(), qui n'est pas ce qu'il y a de mieux, mais qui peut etre
suffisante). S'il y a des doublons, il vont tout simplement ressortir, dans
le desordre, qui est le meme que dans l'ordre, vu que c'est les memes...
(enfin bon, je m'egarre).

Bonne continuation.

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Doft" wrote in message
news:021401c37126$eecc53d0$
Re bonjour!

J'utilise la fonction Randomizer pour sélectionner un nbre
d'enregistrement aléatoire dans une table voici le code:

"SELECT top n enregistrements.......AND Randomizer() = 0
order by rnd(isnull(Table.Champs) * 0 + 1) ;"

Voici le code de la function randomizer:
Function Randomizer() As Integer
Static AlreadyDone As Integer
If AlreadyDone = False Then Randomize: AlreadyDone True
Randomizer = 0
End Function

Or la function randomizer me renvoie des doublons???
Quelqu'un connaitrait-il la solution pour me renvoyer un
résultat sans doublon?

Meci de votre aide!