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