生成随机0或1 - Oracle

时间:2015-04-23 18:58:26

标签: oracle random

我需要生成一个可以是0或1的随机值。我试过这个:select floor(DBMS_RANDOM.VALUE (0, 1)) from dual但获得值1的可能性非常非常低。有没有机会在可能性中找到它对于0和1是相似的吗?

3 个答案:

答案 0 :(得分:4)

DBMS_RANDOM.VALUE(0,1)从不返回1.来自documentation

  

low生成随机数的范围中的最小数字   数。生成的数字可能等于低。

     

高生成随机数的最高数字。该   生成的数字将小于高。

您想:floor(DBMS_RANDOM.VALUE(0,2))

答案 1 :(得分:4)

尝试使用round代替floor

select round(DBMS_RANDOM.VALUE (0, 1)) from dual

答案 2 :(得分:3)

使用DBMS_RANDOM.RANDOM获取整数,mod (n,2)获取0(偶数)或1(奇数)