Последние новости:

Поиск по сайту:

Что есть лучшего? — Сравнив прошедшее, свести его с настоящим (К. Прутков).

SQL — Функция RAND

1 мин для чтения
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
04.05.2017
SQL - Функция RAND

Функция RAND в  SQL может быть вызвана, чтобы произвести случайные числа между 0 и 1

SQL>  SELECT RAND( ), RAND( ), RAND( );
+------------------+-----------------+------------------+
| RAND( )          | RAND( )         | RAND( )          |
+------------------+-----------------+------------------+
| 0.45464584925645 | 0.1824410643265 | 0.54826780459682 |
+------------------+-----------------+------------------+
1 row in set (0.00 sec)

 

При вызове с целочисленным аргументом, RAND() использует это значение для инициализации генератора случайных чисел. Каждый раз, когда вы инициализируете генератор с заданным значением, RAND() будет производить повторяющуюся последовательность чисел:

SQL>  SELECT RAND(1), RAND( ), RAND( );
+------------------+------------------+------------------+
| RAND(1 )         | RAND( )          | RAND( )          |
+------------------+------------------+------------------+
| 0.18109050223705 | 0.75023211143001 | 0.20788908117254 |
+------------------+------------------+------------------+
1 row in set (0.00 sec)

 

Вы можете использовать ORDER BY RAND() для рандомизации набора строк или значений.

Чтобы понять, функцию ORDER BY RAND(), рассмотрим таблицу EMPLOYEE_TBL, которая содержит следующие записи:

SQL> SELECT * FROM employee_tbl;

+----+----------+------------+--------------------+
| id | name     | work_date  | daily_typing_book  |
+----+----------+------------+--------------------+
|  1 | Dima     | 2017-02-01 |                250 |
|  2 | Ruslan   | 2017-03-02 |                220 |
|  3 | AndreyEx | 2017-01-11 |                170 |
|  3 | AndreyEx | 2017-02-02 |                100 |
|  4 | Masha    | 2017-03-12 |                220 |
|  5 | Roma     | 2017-06-23 |                300 |
|  5 | Roma     | 2017-03-12 |                350 |
+----+----------+------------+--------------------+
7 rows in set (0.00 sec)

 

Теперь, используйте следующие команды:

SQL> SELECT * FROM employee_tbl ORDER BY RAND();
+----+----------+------------+--------------------+
| id | name     | work_date  | daily_typing_book  |
+----+----------+------------+--------------------+
|  5 | Roma     | 2017-03-12 |                350 |
|  2 | Ruslan   | 2017-03-02 |                220 |
|  3 | AndreyEx | 2017-01-11 |                170 |
|  1 | Dima     | 2017-02-01 |                250 |
|  5 | Roma     | 2017-06-23 |                300 |
|  3 | AndreyEx | 2017-02-02 |                100 |
|  4 | Masha    | 2017-03-12 |                220 |
+----+----------+------------+--------------------+
7 rows in set (0.01 sec)
 
SQL> SELECT * FROM employee_tbl ORDER BY RAND();
+----+----------+------------+--------------------+
| id | name     | work_date  | daily_typing_book  |
+----+----------+------------+--------------------+
|  4 | Masha    | 2017-03-12 |                220 |
|  2 | Ruslan   | 2017-03-02 |                220 |
|  5 | Roma     | 2017-03-12 |                350 |
|  1 | Dima     | 2017-02-01 |                250 |
|  3 | AndreyEx | 2017-02-02 |                100 |
|  3 | AndreyEx | 2017-01-11 |                170 |
|  5 | Roma     | 2017-06-23 |                300 |
+----+----------+------------+--------------------+
7 rows in set (0.00 sec)

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Статьи партнеров:

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить

Спасибо! Ваша заявка принята

close

Спасибо! Ваша заявка принята

close