Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Presentar ordern aleatorio en un Select (https://www.clubdelphi.com/foros/showthread.php?t=13258)

aerosB4 11-08-2004 23:07:40

Presentar ordern aleatorio en un Select
 
Hola a todos:

Espero que todos se encuentren muy bien. Tengo el siguiente problema, necesito hacer una consulta a una tabla, pero que los registros que me entregue como resultado se encuentren ordenados aleatoriamente.

En Oracle se utilizaba la función interna trunc(dbms.random.value(1,x),0) AS VALOR, la cual generaba una columna adicional que colocaba números aleatorios y con esta nueva columna se podía hacer el ORDER BY. Teniendo un SQL de la siguiente forma:

SELECT trunc(dbms.random.value(1,1000),0) AS valor, a.*
FROM tabla a
ORDER BY valor


¿En Interbase 6 también existe alguna funcion que me pueda ayudar?

Mil gracias por su ayuda

Saludos
AerosB4

Rufus 12-08-2004 10:46:34

En interbse y firebird, dentro de la UDF estándar, la ib_udf.dll, está la funcion RAND() para generar números aleatorios.

La función no tiene parámetros de entrada y genera un valor de tipo DOUBLE PRECISION entre 0 y 1 or lo que solo bastará multiplicarlo por lo que se quiera y truncarlo para obtener los valores en el rango que se precisen.

¡Pero atención!. A ver si alguien más nos puede ayudar porque en las pruebas que yo he hecho me sale el mismo valor para todos los registros que selecciono.

Lepe 12-08-2004 15:33:25

¿ habrá que poner Randomize en el initialization o en el OnCreate del form principal ?

jachguate 12-08-2004 18:29:15

Randomize, de delphi, no tiene nada que ver en este caso... dado que se habla de la función RAND de la ib_udf.dll para interbase/firebird...

aom 16-08-2004 12:53:21

Hola,
rand() utiliza la hora actual para generar el nº aleatorio. Este nº será igual en los registros que se hayan generado durante el mismo segundo.

Saludos


La franja horaria es GMT +2. Ahora son las 19:57:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi