Функция SQL Server RAND()

В этом руководстве вы узнаете, как использовать функцию SQL Server RAND() для возврата псевдослучайного значения с плавающей точкой.

Введение в функцию SQL Server RAND()

Функция RAND() — это математическая функция, позволяющая генерировать случайное значение.

Вот базовый синтаксис функции RAND():

RAND([seed])

В этом синтаксисе:

  • seed — это целое число, которое предоставляет начальное значение. Если вы используете начальное значение, функция RAND() всегда будет возвращать один и тот же результат. Если вы не укажете начальное значение, SQL Server назначит случайное начальное значение.

Функция RAND() возвращает значение с плавающей точкой, которое находится исключительно в диапазоне от 0 до 1. Это означает, что функция RAND() может вернуть 0, но никогда не вернет 1.

Примеры функций SQL Server RAND()

Давайте рассмотрим несколько примеров использования функции SQL Server RAND().

1) Пример базовой функции SQL Server RAND()

Следующий оператор использует функцию RAND() для генерации случайного значения с плавающей точкой в диапазоне от 0 до 1:

SELECT RAND() AS random;

Пример вывода:

random
-----------------
0.943996112912269

2) Генерация случайных чисел в диапазоне

Если вам нужно случайное число в определенном диапазоне, вы можете использовать функцию RAND() следующим образом:

SELECT @low +(RAND() * @high) AS random;

Например, следующий оператор возвращает случайное число от 10 до 90:

SELECT 10 +(RAND() * 90) AS random;

Пример вывода:

random
----------------
10.375665720547

4) Генерация случайных целых чисел в диапазоне

Чтобы сгенерировать случайное целое число в диапазоне от @low до @high, можно объединить функцию RAND() с функцией FLOOR() :

FLOOR((RAND() *(@high - @low)) + @low)

Например, следующий оператор использует функцию RAND() с функцией FLOOR() для генерации случайного целого числа от 10 до 90:

SELECT
  FLOOR((RAND() *(100 - 10 + 1)) + 10) random;

Пример вывода:

random_integer
--------------
49

Как работает запрос:

  • RAND(): генерирует случайное число с плавающей точкой в диапазоне от 0 до 1.
  • (100 — 10 + 1): вычисляет диапазон целых чисел от 10 до 100. +1 добавляется, поскольку мы хотим включить как 10, так и 100.
  • RAND() *(100 — 10 + 1): генерирует случайное значение с плавающей точкой в диапазоне, рассчитанном на шаге 2.
  • (RAND() *(100 — 10 + 1)) + 10: сдвигает случайное значение с плавающей точкой, начиная с 10.
  • FLOOR((RAND() *(100 — 10 + 1)) + 10): округляет значение с плавающей точкой до ближайшего целого числа.

5) Генерация случайного числа с помощью начального числа

В следующем примере используется функция RAND() с начальным значением. Она вернет то же самое случайное число, если вы выполните оператор несколько раз:

SELECT RAND(1) random;

Пример вывода:

random
-----------------
0.713591993212924

Краткое содержание

  • Используйте функцию RAND() для генерации случайного числа с плавающей точкой в диапазоне от 0 до 1.
Мирослав С.

Автор статей, ИБ-специалист