SQL Server 中的 RAND()函数

原文:https://www.geeksforgeeks.org/rand-function-in-sql-server/

RAND()函数: 这个函数在 SQL Server 中用来返回一个随机的十进制值,这个值在大于等于零(> =0)且小于 1 的范围内。如果我们想要获得范围 i < = R < j 的随机整数 R,我们必须使用表达式“FLOOR(I+RAND()*(j-I))”。

特征:

  • 这个函数用来给出一个随机的十进制值。
  • 返回值介于 0(包含)和 1(不包含)之间。
  • 如果这个函数不接受任何参数,它将返回一个完全随机的数字。
  • 如果这个函数接受一个参数,它将返回一个可重复的随机数序列。
  • 该函数接受可选参数。
  • 该函数使用公式 “FLOOR(I+RAND()*(j-I))”得到一个随机整数 R, ,其中 R 位于“i < = R < j”的范围内。

*语法:*

RAND(N)

*参数:* 该方法接受如下参数:

  • *N :* 如果指定了 N,则返回一个可重复的随机数序列。如果没有指定 N,它将返回一个完全随机的数字。它是可选的,可以作为种子值。

*返回:* 返回 0(含)到 1(不含)之间的随机数。

*示例-1 :* 获取 0 到 1 之间的随机值。

SELECT RAND();

*输出:*

0.37892290119984562

*示例-2 :* 获取种子值为 5 的随机十进制数。

SELECT RAND(5);

*输出:*

0.71366652509795636

*示例-3 :* 使用带有变量的 RAND()函数,并使用 RAND 函数获得介于[ 2,8]范围内的随机数。这里,我们将使用表达式:FLOOR(I+RAND()(j-I))来生成随机数。这里,I 是 2,j 是 8。*

DECLARE @i INT;
DECLARE @j INT;
SET @i = 2;
SET @j = 8;
SELECT FLOOR(@i + RAND()*(@j-@i)); 

*输出:*

7.0

*示例-4 :* 使用 RAND 函数获取介于[ 3,9 ]范围内的随机值。这里,我们将使用表达式:FLOOR(I+RAND()(j I+1))来生成随机数。这里我是 3,j 是 9。*

SELECT FLOOR(3 + RAND()*(9 - 3 + 1)); 

*输出:*

9.0

*应用:* 该函数用于返回 0(含)到 1(不含)之间的随机数。