SQL Tutorial SQL Advanced SQL Database SQL References

SQL Server RAND() Function



The SQL Server (Transact-SQL) RAND() function returns a random number from 0 through 1, exclusive. The function returns a completely random number if no seed is provided. The function returns a repeatable sequence of random numbers, if seed is provided.

Syntax

RAND(seed)

Parameters

seed Optional. If seed is specified specified, the function returns a repeatable sequence of random numbers. If no seed is specified, it returns a completely random number

Return Value

Returns a random number from 0 through 1, exclusive.

Example:

The example below shows the usage of RAND() function.

/* no seed value is provided,
  hence the result can vary */
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

Random Number in a given Range

The SQL Server (Transact-SQL) RAND() function can be used to create a random number between a given range. For example - to create a random number in a range (a, b), the following formula can be used:

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

Example:

In the example below, the RAND function is used to create a random number between a range (100, 200).

/* no seed value is provided,
  hence the result can vary */
SELECT RAND()*(200-100) + 100;
Result: 167.5283305591982

/* 10 is provided as seed value */
SELECT RAND(10)*(200-100) + 100;
Result: 171.37596899542473

/* 0 is provided as seed value */
SELECT RAND(0)*(200-100) + 100;
Result: 194.35973904241445

Random Integer in a given Range

The SQL Server (Transact-SQL) RAND() function can be used to create a random integer between a given range. For example - to create a random integer in a range (a, b), the following formula can be used:

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

Example:

In the example below, the RAND function is used to create a random integer between a range (500, 600).

/* no seed value is provided,
  hence the result can vary */
SELECT FLOOR(RAND()*(600-500)) + 500;
Result: 557

/* 10 is provided as seed value */
SELECT FLOOR(RAND(10)*(600-500)) + 500;
Result: 571

/* 0 is provided as seed value */
SELECT FLOOR(RAND(0)*(600-500)) + 500;
Result: 594

❮ SQL Server Functions