MSSQL: selectTop10 * From [Table] OrderByNewid ()
ACCÉDER:
La copie de code est la suivante:
'Pour utiliser Rs.mov
'Si vous prenez 10 articles aléatoires
n = 10
'Nous devons d'abord déterminer si le nombre total d'enregistrements est inférieur à 10. Si moins de 10, combien y a-t-il IFN> 10RS.RecordCountThen = Rs.recordCountCount
diable
fori = 1Ton
Randomiser()
rannum = int (Rs.recordCount * rnd) +1 'génère un nombre aléatoire
Rs.moveannm 'déplacez le curseur vers la position du nombre aléatoire
réponse.writei & "-" & rs ("titre") & "<br/>" 'Contenu de sortie
Rs.Move-Rannum
suivant
'...
C'est suffisant. Bien sûr, il est possible d'obtenir des enregistrements en double de cette manière. Modifiez ensuite la phrase de génération de nombres aléatoires, déclarez une variable pour stocker les nombres aléatoires qui ont été générés, et déterminez d'abord s'il a été généré lors de la génération de nouveaux aléatoires. S'il a été généré, il sera régénéré. C'est relativement simple, vous pouvez le faire avec instant, etc. ~
C'est l'idée, essayez les autres vous-même. Une autre façon de ne pas lire à plusieurs reprises est de générer un seul nombre aléatoire, puis de lire n enregistrements après le nombre aléatoire. Bien sûr, vous devez également écrire un bon jugement. Le nombre aléatoire doit être inférieur au nombre total d'enregistrements - le nombre d'enregistrements doit être lu.
La copie de code est la suivante:
'...
Dimn, Rannum
n = 10
Randomiser()
rannum = Rs.recordCount-n
ifrannum <1Thenrannum = 1
rannum = int (rannum * rnd) +1
Rs.moverannum
fori = 1to10
réponse.writei & "-" & rs ("titre") & "<br/>" 'Contenu de sortie
Rs.MovEnext 'Lisez à côté
suivant
'...
Il est recommandé d'écrire une fonction simple pour générer et juger les nombres aléatoires sans les répéter.