RAND (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse Analytics

返回一个介于 0 到 1(不包括 0 和 1)之间的伪随机 float 值

Transact-SQL 语法约定

语法

RAND ( [ seed ] )

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

注意

Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。

参数

seed

提供种子值的整数表达式tinyintsmallintint)。 如果未指定 seed,则 SQL Server 数据库引擎随机分配种子值。 对于指定的种子值,返回的结果始终相同。

返回类型

float

注解

使用同一个种子值重复调用 RAND() 会返回相同的结果。

  • 对于一个连接,如果使用指定的种子值调用 RAND(),则 RAND() 的所有后续调用将基于使用该种子值的 RAND() 调用生成结果。 例如,以下查询将始终返回相同的数字序列。

    SELECT RAND(100), RAND(), RAND();
    
  • UPDATEINSERT 查询中使用 RAND() 函数时,所有受影响的行都会获得相同的值。

示例

以下示例将产生由 RAND() 函数生成的四个不同的随机数。

DECLARE @counter SMALLINT;

SET @counter = 1;

WHILE @counter < 5
BEGIN
    SELECT RAND() Random_Number
    SET @counter = @counter + 1
END;
GO

另请参阅