2016-10-03 54 views
0

这工作正常:连续随机数中的Teradata

SELECT RANDOM(0,1) 

,但产生的整数(0或1)。是否有可能获得teradata中的连续随机数(即统一分布的数字介于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