Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / RAND() возвращает 0 / 5 сообщений из 5, страница 1 из 1
27.06.2007, 08:07
    #34621773
Hektor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RAND() возвращает 0
Создаю функцию, которая должна вернуть псевдослучайное число.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE FUNCTION DASUSR1.TEMP_F( )
    RETURNS INTEGER
    LANGUAGE SQL
    SPECIFIC SpecificName
    NO EXTERNAL ACTION
F1: BEGIN ATOMIC
	DECLARE SESSION_VARIABLE INT; -- переменная сессии
	SET SESSION_VARIABLE = SYSFUN.RAND( 3000 );
	RETURN SESSION_VARIABLE;
END @

Код: plaintext
VALUES DASUSR1.TEMP_F()@

Почему то возвращяет 0.

Возможно подскажете как переменной в функции или процедуре присвоить случайное число (INT)?

DB2 EXPRESS-C V9.1
...
Рейтинг: 0 / 0
27.06.2007, 10:39
    #34622127
GolemXIV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RAND() возвращает 0
Может, потому что RAND() возвращает число от 0 до 1 и округление до INT дает 0?
...
Рейтинг: 0 / 0
27.06.2007, 13:24
    #34623000
Hektor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RAND() возвращает 0
Если вписать RAND(3000), то в любом случае получаем 0.
На это что скажете?
...
Рейтинг: 0 / 0
27.06.2007, 14:06
    #34623243
RAND() возвращает 0
Читать внимательно описание функции.
Параметр функции RAND задает начальное значение для генератора.
А возвращается число в диапазоне от 0 до 1
Поэтому чтобы получать целое в диапазоне от 0 до 1000 нужно
VALUES(ROUND(10000*RAND(),0)
...
Рейтинг: 0 / 0
02.07.2007, 10:40
    #34631374
Hektor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RAND() возвращает 0
Евгений Хабаров Поэтому чтобы получать целое в диапазоне от 0 до 1000 нужно
VALUES(ROUND(10000*RAND(),0)

Спасибо за помощь
________________________________________________________
________________________________________________________
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / RAND() возвращает 0 / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]