生成随机 0 或 1 - Oracle

generate random 0 or 1 - Oracle

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

用DBMS_RANDOM.RANDOM得到一个整数,用mod (n,2)得到0(偶数)或1(奇数)

DBMS_RANDOM.VALUE(0,1) 永远不会 return 1. 从 documentation:

low The lowest number in a range from which to generate a random number. The number generated may be equal to low.

high The highest number below which to generate a random number. The number generated will be less than high.

你想要:floor(DBMS_RANDOM.VALUE(0,2))

尝试使用 round 而不是 floor:

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