В этом учебном пособии вы узнаете, как использовать PostgreSQL функцию random с синтаксисом и примерами.
Описание
Функция random PostgreSQL может использоваться для возврата случайного числа или случайного числа в пределах диапазона.
Синтаксис
Синтаксис функции random в PostgreSQL:
Параметры или аргументы
Для функции random нет параметров или аргументов.
Примечание
- Функция random вернет значение от 0 (включительно) до 1 (исключая), поэтому значение будет находится в диапазоне >= 0 и <1.
- Используйте функцию setseed, чтобы установить начальное значение для функции random.
- Функция random возвращает полностью случайное число, если начальное число не задано (начальное значение задано функцией setseed)
- Функция random будет возвращать повторяемую последовательность случайных чисел каждый раз, когда используется конкретное начальное значение (начальное значение устанавливается с помощью функции setseed).
random десятичного диапазона
Чтобы создать случайное десятичное число между двумя значениями (диапазон), вы можете использовать следующую формулу:
1 |
SELECT random()*(b-a)+a; |
Где a - наименьшее число, а b - наибольшее число, для которого вы хотите сгенерировать случайное число.
1 |
SELECT random()*(25-10)+10; |
Приведенная выше формула будет генерировать случайное десятичное число >= 10 и < 25. (Примечание: эта формула никогда не вернет значение 25, потому что функция random никогда не вернет 1.)
random диапазона целых чисел
Чтобы создать случайное целое число между двумя значениями (диапазон), вы можете использовать следующую формулу:
1 |
SELECT floor(random()*(b-a+1))+a; |
Где a - наименьшее число, а b - наибольшее число, для которого вы хотите сгенерировать случайное число.
1 |
SELECT floor(random()*(25-10+1))+10; |
Приведенная выше формула будет генерировать случайное целое число от 10 до 25 включительно.
Применение
Функция random может быть использована в следующих версиях PostgreSQL:
- PostgreSQL 11, PostgreSQL 10, PostgreSQL 9.6, PostgreSQL 9.5, PostgreSQL 9.4, PostgreSQL 9.3, PostgreSQL 9.2, PostgreSQL 9.1, PostgreSQL 9.0, PostgreSQL 8.4
Пример random числа
Рассмотрим, как использовать функцию random в PostgreSQL для генерации случайного числа >= 0 и < 1. Например:
1 2 3 |
SELECT random(); --Результат: 0.0186054138466716 |
Хотя функция random вернет значение больше 0, она никогда не вернет значение 1. Она всегда будет возвращать значение меньше 1.
Пример random десятичного диапазона
Рассмотрим, как использовать функцию random в PostgreSQL для генерации random десятичного числа между двумя числами (т.е.: диапазон).
Например, следующее будет генерировать случайное десятичное значение, которое >= 1 и < 10 (Примечание: оно никогда не вернет значение 10):
1 2 3 |
SELECT random()*(10-1)+1; --Результат: 1.40731927193701 |
В следующем примере будет генерироваться случайное десятичное значение >= 25 и < 40 (Примечание: оно никогда не вернет значение 40):
1 2 3 |
SELECT random()*(40-25)+25; --Результат: 33.7993366038427 |
Пример random целочисленного диапазона
Рассмотрим, как использовать функцию random в PostgreSQL для генерации случайного целого числа между двумя числами (то есть: включающий диапазон)
Например, следующее будет генерировать случайное целое значение от 1 до 10:
1 2 3 |
SELECT floor(random()*(10-1+1))+1; --Результат: 6 |
В следующем примере будет генерироваться случайное целочисленное значение от 25 до 40:
1 2 3 |
SELECT floor(random()*(40-25+1))+25; --Результат: 28 |