Вдохновение — это такая девка, которую всегда изнасиловать можно (М.В. Ломоносов).

SQL – Функция RAND

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
4 мая 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.

Просмотров: 148

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

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

    Добавить комментарий

    Войти с помощью: 

    Ваш e-mail не будет опубликован. Обязательные поля помечены *

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

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

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

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

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

    close
    galka

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

    close