Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

ragistros aleatorios

Estas en el tema de ragistros aleatorios en el foro de Bases de Datos General en Foros del Web. Alguie sabe si se puede sacar de una tabla determinada una serie de registros al azar en MS-SQL server yo quiciera que una consulta del ...
  #1 (permalink)  
Antiguo 13/03/2003, 15:22
 
Fecha de Ingreso: octubre-2001
Mensajes: 19
Antigüedad: 22 años, 6 meses
Puntos: 0
ragistros aleatorios

Alguie sabe si se puede sacar de una tabla determinada una serie de registros al azar en MS-SQL server
yo quiciera que una consulta del estilo

select top 10 userID from usuarios where pais='ar' order by Rnd

o algo asi me devolviera siempre diez registros de la tabla en orden aleatorio.

¿será posobe hacer la seleccion aleatoria de los registros directamente en la consulta y asi evitar tener que hacerla en el programa?

desde ya muchas gracias
  #2 (permalink)  
Antiguo 16/03/2003, 06:20
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 22 años, 2 meses
Puntos: 1
<%
set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("tubase.mdb")&";"
SQL="SELECT * FROM articulos"
rs.OPEN sql, oconn, 3, 1
intTotalRecords = rs.RecordCount
Randomize()
intRandomNumber = Int((intTotalRecords * Rnd))
rs.Move intRandomNumber
%>

Con eso ya estas posicionado en un registro aleatorio.

Repite la parte del random las veces que te sea necesario
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #3 (permalink)  
Antiguo 25/03/2004, 06:25
Avatar de DeYoN  
Fecha de Ingreso: febrero-2004
Mensajes: 81
Antigüedad: 20 años, 3 meses
Puntos: 0
Yo me encuentro con el mismo problema, quiero sacar un registro aleatorio de una tabla, pero sin tener que sacar todos los registros y luego eligiendo uno, ya que creo k es un gasto innecesario de recursos.
Tambien he pensado en sacar primero el total de registros y luego pedir que me de el registro de la posición x, pero son 2 consultas y estamos en lo mismo.
¿Alguien sabe la sentencias sql para coger 1 registro al azar?

Estoy pensando en crear pasar una sentencia donde el el resultado este LIMITADO a 1 registro, y con una clausula WHERE que sea aleatoria
Por ejemplo que el identificador del registro sea mayor que x. Siendo x el numero aleatorio de la sentencia sql.
  #4 (permalink)  
Antiguo 25/03/2004, 06:47
 
Fecha de Ingreso: octubre-2001
Mensajes: 19
Antigüedad: 22 años, 6 meses
Puntos: 0
De acuerdo

Finalmente encontre la solucion.

Para pedir que saque registros aleatorios tenes que pedir que ordene los resultados por el "newid()" para seguir con la logica del ejemplo inicial:

Select top 10 userid from tabla.usuarios order by newid()

esta consulta te devuelve diez registros en forme totalmente aleatoria

Esto solo sirve en MSSQL

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:54.