RAND (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics
返回一个介于 0 到 1(不包括 0 和 1)之间的伪随机 float 值。
语法
RAND ( [ seed ] )
注意
Azure Synapse Analytics 中的无服务器 SQL 池不支持此语法。
参数
seed
提供种子值的整数表达式(tinyint、smallint 或 int)。 如果未指定 seed,则 SQL Server 数据库引擎随机分配种子值。 对于指定的种子值,返回的结果始终相同。
返回类型
float
注解
使用同一个种子值重复调用 RAND()
会返回相同的结果。
对于一个连接,如果使用指定的种子值调用
RAND()
,则RAND()
的所有后续调用将基于使用该种子值的RAND()
调用生成结果。 例如,以下查询将始终返回相同的数字序列。SELECT RAND(100), RAND(), RAND();
在
UPDATE
或INSERT
查询中使用RAND()
函数时,所有受影响的行都会获得相同的值。
示例
以下示例将产生由 RAND()
函数生成的四个不同的随机数。
DECLARE @counter SMALLINT;
SET @counter = 1;
WHILE @counter < 5
BEGIN
SELECT RAND() Random_Number
SET @counter = @counter + 1
END;
GO