MSSQL: selectTop10*de [Tabla] OrderByNewid ()
ACCESO:
La copia del código es la siguiente:
'Usar Rs.mov
'Si toma 10 artículos al azar
n = 10
'Primero debemos determinar si el número total de registros es inferior a 10. Si es de menos de 10, ¿cuántos existen?
dimrannum
fori = 1ton
Aleatorizar ()
rannum = int (rs.RecordCount*rnd) +1 'genera un número aleatorio
Rs.Moverannum 'Mueva el cursor a la posición del número aleatorio
Response.Writei & "-" & rs ("Título") y "<br/>" '' Contenido de salida
Rs.Move-Rannum
próximo
'...
Esto es suficiente. Por supuesto, es posible obtener registros duplicados de esta manera. Luego cambie la oración de generar números aleatorios, declare una variable para almacenar los números aleatorios que se han generado y determinar primero si se ha generado al generar nuevos randoms. Si se ha generado, se regenerará. Esto es relativamente simple, puede hacerlo con instr, etc. ~
Esta es la idea, prueba a los demás tú mismo. Otra forma de no leer repetidamente es generar solo un número aleatorio y luego leer n registros después del número aleatorio. Por supuesto, también debes escribir un buen juicio. El número aleatorio debe ser menor que el número total de registros: el número de registros debe leerse.
La copia del código es la siguiente:
'...
dimino, rannum
n = 10
Aleatorizar ()
rannum = rs.RecordCount-N
Ifrannum <1Thenrannum = 1
rannum = int (rannum*rnd) +1
Rs.Moverannum
fori = 1to10
Response.Writei & "-" & rs ("Título") y "<br/>" '' Contenido de salida
Rs.movenext 'lea al lado
próximo
'...
Se recomienda escribir una función simple para generar y juzgar números aleatorios sin repetirlos.