Alguien sabe algo de la aleatoriedad.

10/12/2003 - 19:47 por Jose Cabeza | Informe spam
Hola de nuevo.

Existe alguna instrucción para realizar una consulta
aleatoriamente. Por ejemplo:

Tengo una base de datos con 1000 registros de los cuales
100 cumplen una condición, de entre esos 100 necesito
hacer un select para que me muestre un máximo de 10 pero
aleatoriamente sin seguir ningún orden lógico, solo la
aleatoriedad. Y por supuesto que no se repitan entre
ellos en el resultado, es decir 10 completamente
distintos.

No se si existe algo para hacerlo con un SELECT, alguien
lo sabe.

Actualmente la solución la tengo escrita en ASP, de forma
que realizo el select de los que cumplen la condición y
luego los vuelco a una matriz. Con una rutina ASP
selecciono de forma aleatoria los 10 registros y que no
se repiten entre ellos, pero claro esto tarda algo cuando
tienes un total de 100 o 150 sesiones simultáneas
realizando este proceso.

Espero alguna idea.

Gracias de antemano.
 

Leer las respuestas

#1 Eladio Rincón
10/12/2003 - 22:31 | Informe spam
Hola,

newid() te servirá ...

use northwind
go
select top 10 OrderId
from Orders order by newid()

Saludos,

Eladio Rincón
SQL Server MVP
http://eladio.europe.webmatrixhosting.net

"Comparte lo que sabes, aprende lo que no sepas." FGG

"Jose Cabeza" escribió en el mensaje news:094f01c3bf4e$15cd5b80$
Hola de nuevo.

Existe alguna instrucción para realizar una consulta
aleatoriamente. Por ejemplo:

Tengo una base de datos con 1000 registros de los cuales
100 cumplen una condición, de entre esos 100 necesito
hacer un select para que me muestre un máximo de 10 pero
aleatoriamente sin seguir ningún orden lógico, solo la
aleatoriedad. Y por supuesto que no se repitan entre
ellos en el resultado, es decir 10 completamente
distintos.

No se si existe algo para hacerlo con un SELECT, alguien
lo sabe.

Actualmente la solución la tengo escrita en ASP, de forma
que realizo el select de los que cumplen la condición y
luego los vuelco a una matriz. Con una rutina ASP
selecciono de forma aleatoria los 10 registros y que no
se repiten entre ellos, pero claro esto tarda algo cuando
tienes un total de 100 o 150 sesiones simultáneas
realizando este proceso.

Espero alguna idea.

Gracias de antemano.

Preguntas similares