SAP HANA 随机数生成器
SAP HANA random number generator
我想编写一个语句,从一组四个值(2、4、6 和 8)中随机选择一个值。以下是我目前的 select 声明
SELECT
CASE
WHEN RN_GENERATOR.RANDOM_NUMBER BETWEEN 0 AND 2.00 THEN 2
WHEN RN_GENERATOR.RANDOM_NUMBER BETWEEN 2.01 AND 4.00 THEN 4
WHEN RN_GENERATOR.RANDOM_NUMBER BETWEEN 4.01 AND 6.00 THEN 6
WHEN RN_GENERATOR.RANDOM_NUMBER BETWEEN 6.01 AND 8.00 THEN 8
END AS ORDER_FREQUENCY
FROM (SELECT ROUND(RAND()*8,2) AS RANDOM_NUMBER FROM DUMMY) RN_GENERATOR
有没有更智能的方法?
在我看来,你的要求似乎可以满足,但他的说法
select
ROUND(rand()*4, 0, ROUND_CEILING) * 2 as ORDER_FREQUENCY
from dummy;
RAND() * 4
将 RAND()
函数的可能结果的值范围从 0..1 扩展到 0..4.
ROUND( ... , 0, ROUND_CEILING)
将数字四舍五入为下一个更大或相等的整数,并且不保留小数位。对于此示例,这意味着此舍入的输出只能是 1、2、3 或 4。
*2
只是将四个可能的值映射到您的目标数字范围 2、4、6、8。如果乘法不够,您也可以为此使用 MAP()
函数.
就是这样。从 (2, 4, 6, 8)
.
集合中选取的随机数
您可以使用
对数据集进行随机排序
按兰德排序()
和select第一个作为你的随机值
这是一个例子
select top 1 rownum
from Numbers_Table(10) as nt
where rownum in (2,4,6,8)
order by rand();
Numbers_Table 函数 returns a numbers table on HANA database 并且我使用 WHERE 子句
仅过滤您希望看到的可能随机值的值
SELECT命令中的TOP 1子句returns第一个随机排序的整数
希望对你有帮助
我想编写一个语句,从一组四个值(2、4、6 和 8)中随机选择一个值。以下是我目前的 select 声明
SELECT
CASE
WHEN RN_GENERATOR.RANDOM_NUMBER BETWEEN 0 AND 2.00 THEN 2
WHEN RN_GENERATOR.RANDOM_NUMBER BETWEEN 2.01 AND 4.00 THEN 4
WHEN RN_GENERATOR.RANDOM_NUMBER BETWEEN 4.01 AND 6.00 THEN 6
WHEN RN_GENERATOR.RANDOM_NUMBER BETWEEN 6.01 AND 8.00 THEN 8
END AS ORDER_FREQUENCY
FROM (SELECT ROUND(RAND()*8,2) AS RANDOM_NUMBER FROM DUMMY) RN_GENERATOR
有没有更智能的方法?
在我看来,你的要求似乎可以满足,但他的说法
select
ROUND(rand()*4, 0, ROUND_CEILING) * 2 as ORDER_FREQUENCY
from dummy;
RAND() * 4
将 RAND()
函数的可能结果的值范围从 0..1 扩展到 0..4.
ROUND( ... , 0, ROUND_CEILING)
将数字四舍五入为下一个更大或相等的整数,并且不保留小数位。对于此示例,这意味着此舍入的输出只能是 1、2、3 或 4。
*2
只是将四个可能的值映射到您的目标数字范围 2、4、6、8。如果乘法不够,您也可以为此使用 MAP()
函数.
就是这样。从 (2, 4, 6, 8)
.
您可以使用
对数据集进行随机排序按兰德排序()
和select第一个作为你的随机值
这是一个例子
select top 1 rownum
from Numbers_Table(10) as nt
where rownum in (2,4,6,8)
order by rand();
Numbers_Table 函数 returns a numbers table on HANA database 并且我使用 WHERE 子句
仅过滤您希望看到的可能随机值的值SELECT命令中的TOP 1子句returns第一个随机排序的整数
希望对你有帮助