# SQL Server RAND(): Get Random Numbers

In SQL Server, the `RAND()`

function returns a random number between 0 and 1, excluding 0 & 1.
It returns the pseudo-random float value.

```
RAND(seed)
```

## Parameters

**seed:** Optional. An integer value to generate a random number.
If it is not provided, SQL Server assigns different seed value on each execution.

Note: For a specified seed value, the return value is always the same.

## Return Value

Returns a float between 0 through 1.

## Example 1:

In this simple example, `RAND()`

is called without a seed value. Here the `RAND()`

function returns a different value every time it is executed because `RAND()`

uses a random seed value each time.

```
SELECT RAND() AS WithoutSeed;
```

The above output may be different in your local SQL Server. It returns the different random number on each execution because it internally passes different seed value each time.

## Example 2:

In the following example, the `RAND()`

uses a seed value and the return value is always the same for a given seed.

```
SELECT RAND(7) AS WithPosSeed;
```

## Example 3:

In this example, the `RAND()`

uses a negative seed value and the return value is always the same for a given seed similar to a positive seed.

```
SELECT RAND(-9) AS WithNegSeed;
```

## Generate Random Number Between Specific Numbers

use the following formula to generate a random integer value between the two numbers:

`SELECT FLOOR(RAND() * (b-a+1)) + a`

In the above formula, `a`

is the smallest number and `b`

is the largest number in the range in which you want to generate a random number (inclusive of a & b).

For example, the following generates a random integer between 10 and 20.
Since the FLOOR() function is used with `RAND()`

, the result would be integer.

```
SELECT FLOOR(RAND() * (20-10 + 1)) + 10 AS RandInt;
```