SQL Server 函数

SQL Server (Transact-SQL) RAND() 函数返回 0 到 1 之间的随机数(不包括在内)。如果没有提供种子,该函数将返回一个完全随机的数字。如果提供了种子,该函数将返回可重复的随机数序列。

语法

RAND(seed) 

参数

seed可选。 如果指定了seed,则该函数返回可重复的随机数序列。如果没有指定种子,则返回完全随机数

返回值

返回随机数0 到 1 之间的数字,不包括。

示例:

下面的示例显示了 RAND() 函数的用法。

/* 没有提供种子值,
   因此结果可能会有所不同
 */
SELECT RAND();
Result: 0.5499342331612234

/* 10 is provided as seed value */
SELECT RAND(10);
Result: 0.7137596899542473

/* 0 is provided as seed value */
SELECT RAND(0);
Result: 0.9435973904241444 

给定范围内的随机数

SQL Server (Transact-SQL) RAND() 函数可用于创建给定范围内的随机数。例如 - 要创建范围 (a, b) 内的随机数,可以使用以下公式:

SELECT RAND()*(b-a) + a; 

示例:

在下面的示例中, RAND 函数用于创建范围 (100, 200) 之间的随机数。

/* 没有提供种子值,因此结果可能会有所不同*/
SELECT RAND()*(200-100) + 100;
Result: 167.5283305591982

/* 10为种子值 */
SELECT RAND(10)*(200-100) + 100;
Result: 171.37596899542473

/* 0为种子值 */
SELECT RAND(0)*(200-100) + 100;
Result: 194.35973904241445 

给定范围内的随机整数

SQL Server (Transact-SQL) RAND() 函数可用于创建给定范围之间的随机整数。例如 - 要创建范围 (a, b) 内的随机整数,可以使用以下公式:

SELECT FLOOR(RAND()*(b-a)) + a; 

示例:

在下面的示例中, RAND 函数用于创建范围 (500, 600) 之间的随机整数。

/* 没有提供种子值,因此结果可能会有所不同 */
SELECT FLOOR(RAND()*(600-500)) + 500;
Result: 557

/* 10为种子值 */
SELECT FLOOR(RAND(10)*(600-500)) + 500;
Result: 571

/* 0为种子值 */
SELECT FLOOR(RAND(0)*(600-500)) + 500;
Result: 594