SQL RAND 函数

SQL Server 的 RAND 函数是一个数学函数,用于返回零和一之间的伪随机数。RAND 函数生成的值在 0(包含)到 1(不包含)之间。

RAND 函数的基本语法如下所示。

SELECT RAND(seed)
FROM [Source]

Seed:它是一个整数表达式,类型为 int、tinyint 或 smallint。

  • 如果省略此参数,则会自动随机分配种子值。
  • 如果指定了种子值,则结果将始终相同。

SQL服务器RAND 函数示例

RAND 函数返回 0 到 1 之间的伪随机数。在此示例中,我们将检查这一点并显示输出。

前三行代码将返回随机值。如果您看到下面的屏幕截图,我们调用了 RAND 函数三次,它返回了三个不同的(随机)值。

在接下来的两个语句中,我们将 RAND 函数直接应用于正数值 12 和 150。我们还使用 ALIAS 列为结果分配了一个新名称。

接下来,我们将此 数学方法 直接应用于负数值 -120 和 -980。

SELECT RAND() AS [Random Result 1]
SELECT RAND() AS [Random Result 2]
SELECT RAND() AS [Random Result 3]

SELECT RAND(12) AS [Random Result 4]
SELECT RAND(150) AS [Random Result 5]

SELECT RAND(-120) AS [Random Result 6]
SELECT RAND(-980) AS [Random Result 7]
RAND Function 1

RAND 函数示例 2

在此示例中,我们将在 WHILE LOOP 中使用 SQL RAND 函数。

我建议您参考 SUBSTRINGALIASWHILE LOOP 的文章,以了解 SQL Server 查询执行。

如果您观察到下面的屏幕截图,由于我们没有指定种子值,第一个语句在每次迭代中都返回不同的结果。

下一个语句因为我们指定种子值为 10,所以在每次迭代中返回相同的结果。

DECLARE @i INT 
SET @i = 0;  
 
WHILE @i <= 10
	BEGIN
		SELECT RAND() AS [Random Result],
		       RAND(10) AS [Random Seed Result 1],
		       RAND(10 * @i) AS [Random Seed Result 2]
		SET @i = @i + 1
	END;
RAND Function Example 2