¿Cómo generar un número aleatorio en SQL?

Hoy en el trabajo nos ha hecho falta generar en SQL, un número aleatorio comprendido entre dos números para realizar unos procedimientos almacenados.

Después de buscar algo de información y revisar varias webs donde comentaban distintas formas, algunas erróneas, de hacer este cálculo, hemos llegado a la conclusión de que las dos formas más rápidas y claras de hacerlo son las siguientes:

//Obtener un número aleatorio entre [num_minimo] y [num_maximo] (ambos incluidos)
SELECT [num_minimo] + CONVERT(INT, ([num_maximo] - [num_minimo] + 1) * RAND())
SELECT ROUND((([num_maximo] - [num_minimo]) * RAND() + [num_minimo]), 0)

//En nuestro caso, necesitábamos obtener un número aleatorio entre 7 y 10
SELECT 7 + CONVERT(INT, (10 - 7 + 1) * RAND())
SELECT ROUND(((10 - 7) * RAND() + 7), 0)

Espero que te haya servido de ayuda esta entrada, si es así te agradecería un comentario o un compartir.

 

Si quieres ver más publicaciones de SQL, pulsa aquí

Fuente original:

https://blog.sqlauthority.com/2007/04/29/sql-server-random-number-generator-script-sql-query/