2016-10-03 2 views
0

Это прекрасно работает:непрерывного случайного числа в Teradata

SELECT RANDOM(0,1) 

но производит целое число (0 или 1). Можно ли получить непрерывные случайные числа в терадатах (т. Е. Равномерно распределенное число между нулем и одним включительно)?

ответ

2

Вы можете использовать эту UDF (или просто расчет):

REPLACE FUNCTION Rand_01() /* 0 <= r <= 1 */ 
RETURNS FLOAT 
LANGUAGE SQL 
CONTAINS SQL 
NOT DETERMINISTIC 
SQL SECURITY DEFINER 
COLLATION INVOKER 
INLINE TYPE 1 
RETURN 
    ((CAST(RANDOM(-2147483648, 2147483647) AS FLOAT) + 2147483648)/4294967295); 
0

Просто найти возможный ответ:

SELECT CAST(RANDOM(0,999999999) AS FLOAT)/1000000000 

Взятые из here.

+1

Это может возвращать несколько предвзятое случайное значение, лучше использовать весь спектр intergers. – dnoeth

Смежные вопросы