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:
seedis 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.943996112912269Code 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.375665720547Code 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
--------------
49Code 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+1is 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.713591993212924Code language: CSS (css)Summary #
- Use the
RAND()function to generate a random float number between 0 and 1.