Инструменты пользователя

Инструменты сайта


rand

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
rand [2009/11/05 18:01]
german
rand [2010/01/10 17:03] (текущий)
peaktop Стала встроенной в 2.1, не в 2.0
Строка 1: Строка 1:
 +====== RAND() ======
  
 +
 +===== Версии сервера =====
 +^                       ^ 0.9 ^ 1.0 ^ 1.5.3 ^ 1.5.4 ^ 1.5.5 ^ 2.0 ^ 2.1 ^ 2.5 ^ 3.0 ^
 +^Как [[UDF]] ​           |  Да  |  Да  |  Да  |  Да  |  Да  |  Да  |  -  |  -  |  -  |
 +^Как встроенная функция |  -  |  -  |  -  |  -  |  -  |  -  |  Да  |  Да  |  Да  |
 +
 +
 +===== Доступно в =====
 +[[raznovidnosti_jazyka_sql|DSQL]], ​  ​[[raznovidnosti_jazyka_sql|ISQL]], ​  ​[[raznovidnosti_jazyka_sql|PSQL]]
 +
 +
 +===== Формат =====
 +<​code>​RAND()</​code>​
 +^ Аргумент ^ Описание ^
 +| Возвращает | [[tipy_dannyx|DOUBLE PRECISION]] ​ |
 +
 +===== Описание =====
 +Функция RAND() возвращает псевдослучайное число, равномерно распределенное в интервале от [0..1].
 +
 +:!: В Firebird версии младше 2.1 для того, чтобы пользоваться этой функцией,​ ее необходимо подключить к базе данных как [[UDF]].
 +
 +===== Объявление =====
 +1. В Firebird версии младше 2.1 функция объявляется как [[UDF]] в внешнем модуле "​ib_udf"​.
 +<code sql>
 +DECLARE EXTERNAL FUNCTION RAND
 +RETURNS ​
 +  DOUBLE PRECISION BY VALUE
 +ENTRY_POINT '​IB_UDF_rand'​ MODULE_NAME '​ib_udf';​
 +</​code>​
 +
 +2. В Firebird версии 2.1 и старше является встроенной функцией при соглашении объявления ее как:
 +<code sql>
 +DECLARE EXTERNAL FUNCTION RAND
 +RETURNS ​
 +  DOUBLE PRECISION BY VALUE
 +ENTRY_POINT '​IB_UDF_rand'​ MODULE_NAME '​SYSTEM';​
 +</​code>​
 +
 +
 +===== Пример =====
 +1) Псевдослучайное число в интервале [0..1]
 +<code sql>
 +SELECT RAND() FROM RDB$DATABASE
 +</​code>​
 +
 +2) Псевдослучайное число в интервале [1..100]
 +<code sql>
 +SELECT TRUNC(RAND() * 100) FROM RDB$DATABASE
 +</​code>​
 +
 +3) Псевдослучайное число в интервале [1..123456]
 +<code sql>
 +SELECT TRUNC(RAND() * 123456) FROM RDB$DATABASE
 +</​code>​
 +
 +===== См. также =====
 +[[UDF]], [[vstroennye_funkcii|Встроенные функции]],​ [[TRUNC()]]
 +
 +===== Источник =====
 +langref.pdf
rand.txt · Последние изменения: 2010/01/10 17:03 — peaktop