RAND (Transact-SQL)

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

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

Transact-SQL 语法约定

语法

RAND ( [ seed ] )  

注意

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

注意

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

参数

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

返回类型

float

备注

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

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

SELECT RAND(100), RAND(), RAND()   

示例

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

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

另请参阅

数学函数 (Transact-SQL)