SQL Server RAND():获取随机数
在 SQL Server 中,RAND()
函数返回一个介于 0 和 1 之间(不包括 0 和 1)的随机数。它返回伪随机浮点值。
RAND(seed)
参数
seed: 可选。用于生成随机数的整数值。如果未提供,SQL Server 会在每次执行时分配不同的种子值。
注意:对于指定的种子值,返回值始终相同。
返回值
返回一个介于 0 到 1 之间的浮点数。
示例 1
在这个简单的例子中,RAND()
在没有种子值的情况下被调用。这里的 RAND()
函数每次执行时都会返回不同的值,因为 RAND()
每次都使用随机种子值。
示例:RAND()
SELECT RAND() AS WithoutSeed;

上述输出在您的本地 SQL Server 中可能不同。它在每次执行时都会返回不同的随机数,因为它每次内部都会传递不同的种子值。
示例 2
在以下示例中,RAND()
使用种子值,并且对于给定的种子,返回值始终相同。
示例:RAND()
SELECT RAND(7) AS WithPosSeed;

示例 3
在此示例中,RAND()
使用负种子值,并且对于给定种子,返回值始终相同,类似于正种子。
示例:RAND()
SELECT RAND(-9) AS WithNegSeed;

生成特定数字之间的随机数
使用以下公式生成两个数字之间的随机整数值
SELECT FLOOR(RAND() * (b-a+1)) + a
在上面的公式中,a
是您希望生成随机数的范围内的最小数字,b
是最大数字(包括 a 和 b)。
例如,以下代码生成一个介于 10 到 20 之间的随机整数。由于 FLOOR() 函数与 RAND()
一起使用,结果将是整数。
示例:范围内的随机数
SELECT FLOOR(RAND() * (20-10 + 1)) + 10 AS RandInt;
