Creamos una consulta, agregamos los campos deseados, en el ejemplo todos los campos de TuTabla.* Añadimos un campo con la función NúmAleat basado en un campo numérico de la tabla, ordenamos por este campo, seleccionamos en Devuelve: el número de registros de la muestra o porcentaje del total y ejecutamos la consulta.
En SQL, la sintaxis sería:
SELECT TOP 100 TuTabla.* FROM TuTabla ORDER BY Rnd([campo numérico]);Si solamente tuviéramos campos de texto, usamos la función Longitud (Len en inglés) para que nos devuelva como valor el número de caracteres de la cadena de texto. La consulta sería: En SQL:
SELECT TOP 100 TuTabla.* FROM TuTabla ORDER BY Rnd(Len([campo de texto]));
Es importante señalar que la función NúmAleat con un argumento igual a cero devuelve el último número generado. Y si es negativo, repite cada vez el mismo número aleatorio para ese valor.
La solución sería usar la función Abs, que devuelve el valor absoluto de un número:
NúmAleat(Abs([campo numérico]))
En SQL:
SELECT TOP 100 TuTabla.* FROM TuTabla ORDER BY Rnd(Abs([campo numérico]));
Otra alternativa sería usar de nuevo la función Longitud como vimos más arriba, en este caso con un campo numérico. Así forzamos a que nos devuelva un número mayor que cero, aunque tenga un cero o un número negativo.
En SQL:
SELECT TOP 100 TuTabla.* FROM TuTabla ORDER BY Rnd(Len([campo numérico]));
Entradas relacionadas