Foros del Web » Programando para Internet » ASP Clásico »

SQL captura aleatoria

Estas en el tema de SQL captura aleatoria en el foro de ASP Clásico en Foros del Web. Saludos. En PHP para capturar registros de una tabla de forma aleatoria, uno coloca en el ORDER BY RAND() directamente en el QUERY En ASP ...
  #1 (permalink)  
Antiguo 16/05/2005, 09:15
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
SQL captura aleatoria

Saludos.

En PHP para capturar registros de una tabla de forma aleatoria, uno coloca en el ORDER BY RAND() directamente en el QUERY

En ASP eso no es posible??

Hay que traer todos los registros, luego hacer una función que me capture unos valores aleatorios de todos los registros???

Diganme que si se puede colocar algo como el RAND() directamente en el query

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #2 (permalink)  
Antiguo 16/05/2005, 10:26
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Hola, esto de orden aleatorio lo vi en dos mensajes. Uno en donde u_goldman desarrolló un tremendo script para ello y otro que no sé en qué quedó pero la aleatoriedad salía directamente del QUERY. Hoy me puse en ello para quitarme la duda y "descubrí" lo siguiente:

Si colocás ésto...
Código:
SELECT personas.nombre FROM personas ORDER BY Rnd() 
... genera un número aleatorio, pero siempre es el mismo número para todos los registros. Por lo tanto, no sirve

Peeeero... vi que la función rnd() acepta un argumento numérico. Entonces, se traduce en rnd([número]). Fue ahí cuando me iluminé y, en vez de colocar un número constante, le coloqué el ID autonumérico de la tabla quedando así:

Código:
SELECT personas.nombre FROM personas ORDER BY Rnd(personas.ID_Atonumerico) 
y... ¡sorprais! Registros ordenados de manera aleatoria ;)

Al menos funciona con bases Access [B]desde el MSAccess[B] pero supongo, que así no lo probé, funciona mediante la ejecusión por parte de ASP.

Saludos
__________________
...___...
  #3 (permalink)  
Antiguo 16/05/2005, 10:31
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Si utilizas SQL, solo tienes que darle la instruccion ORDE BY NEWID()

Y AZ, gracias por el dato, no sabes en su momento que sufrimiento fue hacer esto en Access
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 16/05/2005, 11:32
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
Ok, ya me parecia extraño que no se pudiera hacer.

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #5 (permalink)  
Antiguo 16/05/2005, 11:44
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
Bien, el asunto ahora es el siguiente, sacar aleatoriamente un número de un arreglo

Tengo:

Arreglo_1 = (1,3,25,32,67)

Ahora quiero sacar de allí uno de esos número pero de forma aleatoria

Vista 1 = 1
Vista 2 = 67
Vista 3 = 3

Cada vista representa a una recarga de la página
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #6 (permalink)  
Antiguo 16/05/2005, 12:06
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Ummm... se me ocurre que generes un número aleatorio entero entre 0 y ubound(Arreglo_1) y luego usas ese aleatorio para colocárselo como índice del array: Arreglo_1(NumAleatorio)
__________________
...___...
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 20:46.