RANDOM() Para ordenar aleatoriamente
Para seleccionar u ordenar aleatoriamente uno o varios registros en postgreSQL usaremos la función RANDOM() de la siguiente manera:
SELECT RANDOM() as orden, campo1, campo2, campo3 FROM tabla ORDER BY orden;
Si queremos solo obtener un registro aleatorio le agregamos LIMIT a nuestra sentencia SQL, ejemplo:
SELECT RANDOM() as orden, campo1, campo2, campo... FROM tabla ORDER BY orden LIMIT 1;
Existen otros métodos de ordenamiento aleatorio, pero este es el más fácil y efectivo en la mayoría de los casos.
Función RANDOM y números enteros
La función RANDOM() Genera un número aleatorio entre 0 y 1 si deseamos crear números enteros con límite podemos realizarlo usando la función ROUND() de la siguiente forma:
SELECT ROUND(RANDOM() * X) AS numero;
Reemplazar X por el limite del numero que deseas generar, ejemplo: Si deseamos generar un número entre 0 y 100 podemos ejecutar:
SELECT ROUND(RANDOM() * 100) AS numero;
Función RANDOM y límites
Si deseamos generar un número entero con límites entre 2 valores podemos usar la siguiente sentencia:
SELECT ROUND(RANDOM()*(MAX-MIN)+MIN) AS numero;
Reemplazar MAX por el valor límite máximo y MIN por el valor límite mínimo. Ejemplo:
Deseamos generar un número aleatorio entre 5 y 15 ejecutamos la siguiente sentencia:
SELECT ROUND(RANDOM()*(15-5)+15) AS numero;
Comentarios