teradata 中的连续随机数

continuous random number in teradata

这很好用:

SELECT    RANDOM(0,1) 

但生成一个整数(0 或 1)。是否可以在teradata中获得连续的随机数(即0和1之间的均匀分布数)?

刚刚找到一个可能的答案:

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

摘自 here.

您可以使用此 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);