Summary: in this tutorial, you will learn how to use the SQL Server RAND() function to return a pseudo-random float value.
Introduction to the SQL Server RAND() function
The RAND()
function is a math function that allows you to generate a random value.
Here’s the basic syntax of the RAND()
function:
RAND([seed])
Code language: SQL (Structured Query Language) (sql)
In this syntax:
seed
is an integer that provides a seed value. If you use a seed value, theRAND()
function will always return the same result. If you don’t specify a seed value, SQL Server will assign a random seed value.
The RAND()
function returns a float value that ranges from 0 through 1, exclusively. This means that the RAND()
function may return 0 but never return 1.
SQL Server RAND() function examples
Let’s explore some examples of using the SQL Server RAND()
function.
1) Basic SQL Server RAND() function example
The following statement uses the RAND()
function to generate a random float value between 0 and 1:
SELECT RAND() AS random;
Code language: SQL (Structured Query Language) (sql)
Sample Output:
random
-----------------
0.943996112912269
Code language: SQL (Structured Query Language) (sql)
2) Generate random numbers in a range
If you need a random number within a specific range, you can use the RAND() function as follows:
SELECT @low + (RAND() * @high) AS random;
Code language: CSS (css)
For example, the following statement returns a random number between 10 and 90:
SELECT 10 + (RAND() * 90) AS random;
Code language: PHP (php)
Sample output:
random
----------------
10.375665720547
Code language: CSS (css)
4) Generating random integers within a range
To generate a random integer within a range from @low
to @high
, you can combine the RAND()
function with the FLOOR()
function:
FLOOR((RAND() * (@high - @low)) + @low)
Code language: CSS (css)
For example, the following statement uses the RAND()
function with the FLOOR()
function to generate a random integer between 10 and 90:
SELECT
FLOOR((RAND() * (100 - 10 + 1)) + 10) random;
Code language: SQL (Structured Query Language) (sql)
Sample output:
random_integer
--------------
49
Code language: SQL (Structured Query Language) (sql)
How the query works:
RAND()
: Generates a random float value between 0 and 1.(100 - 10 + 1)
: Calculates the range of integers between 10 and 100. The+1
is added because we want to include both 10 and 100.RAND() * (100 - 10 + 1)
: Generates a random float value within the range calculated in step 2.(RAND() * (100 - 10 + 1)) + 10
: Shifts the random float value to start from 10.FLOOR((RAND() * (100 - 10 + 1)) + 10)
: Rounds the float value to the nearest integer.
5) Generating a random number with a seed
The following example uses the RAND()
function with a seed value. It’ll return the same random number if you execute the statement multiple times:
SELECT RAND(1) random;
Sample output:
random
-----------------
0.713591993212924
Code language: CSS (css)
Summary
- Use the
RAND()
function to generate a random float number between 0 and 1.