Selection de 10 champs au hazard

Signaler
Messages postés
58
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
26 janvier 2005
-
Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
-
:question) Est il possible de selectionner dans une table access 10 champs au hazard sans doublons??

merci

[mailto:mathieut@libertysurf.fr mail]
:big)

5 réponses

Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
18
A vrai dire, tout dépend du nombre de lignes que tu récupères (important ou non)
<cfquery ... name="myQuery">
select Id,Champ1...
from Toto
</cfquery>
<cfset lId = ValueList(myQuery.Id)>
<cfset lIdLen = ListLen(lId)>
<cfset Idx = 0>
<cfset Nb = 10>
<cfloop condition="(Idx LT Nb) OR lIdLen GT 0">
<cfset Pipo = RandRange(1,lIdLen)>
<cfoutput>#myQuery.Champ1[Pipo]#</cfoutput>
<cfset lId = ListDeleteAt(lId,Pipo)>
<cfset lIdLen = lIdLen - 1>
<cfset Idx = Idx + 1>
</cfloop>
Mais c'est une solution de tete, je te conseille si tu as le temps de passer tout ça sous CFScript !!

S.
Messages postés
49
Date d'inscription
vendredi 29 mars 2002
Statut
Membre
Dernière intervention
14 septembre 2004

Tu peux aussi le faire en SQL...
<CFQUERY name="TrouverClient" datasource="Cie">
SELECT TOP 10 noClient, nomClient
FROM [Clients]
ORDER BY Rnd(noClient);
</CFQUERY>
<CFDUMP var="#TrouverClient#">

(J'ai présumé que tu voulais afficher 10 enregistrements au hazard et non 10 champs )

------------------
Rastafa
Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
18
100% d'accord avec toi. En full sql on peut faire plein de choses, mais tout dépend du SGBD et de la norme SQL. De plus, le Rnd peut te sortir le meme, d'ou probleme...
S.
Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
18
Grrrr !! J'aimais bien cette soluce avec le Rnd, mais manque de chance Rnd n'est po reconnu sous SQL Server. Kelk'un connait son équivalent sous SQL Server ??
Pfff, je vais devoir sortir ma soluce...
S.
Messages postés
2378
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
18
J'ai trouvé sous SQL Server

SELECT Top 10 *
FROM Toto
ORDER BY NEWID()
Voila !!
S.tout.content...