如何在SQL Server中生成十个绝对随机数?

HAJ*_*JAJ 4 sql-server

如何在SQL Server中生成十个绝对随机数?

我试过了 select ABS(CHECKSUM(rand()))

但我无法控制数字!

Adr*_*man 6

RAND()返回0到1之间的数字.因此,您不需要调用ABS().您可以通过将RAND的结果乘以10得到10位(10000000000)的幂来获得10位随机整数,然后舍入结果(我在下面的示例中选择了楼层,但您可以使用CEILING()或ROUND()) .由于10位数字处于int数据类型的限制,因此我将POWER()转换为bigint.

SELECT FLOOR(RAND() * POWER(CAST(10 as BIGINT), 10))
Run Code Online (Sandbox Code Playgroud)

参考

http://msdn.microsoft.com/en-us/library/ms177610.aspx
http://msdn.microsoft.com/en-us/library/ms187745.aspx