首页 > 解决方案 > 如何在两个值之间生成数字

问题描述

我想生成 2 个值之间的数字,例如 32 到 35 之间的 15 个数字。

我写了这个:

SELECT LEVEL+31 + round(dbms_random.value(1, 4))
FROM   dual CONNECT BY LEVEL <=15;

但它给了我这样的结果:

 34
 36
 37
 36
 39
 39
 40
 41
 44
 44
 45
 47
 45
 47
 47

我希望所有 15 个值都在 31 到 35 的范围内。

标签: sqloracleoracle11g

解决方案


LEVEL从中删除SELECT和修改限制dbms_random.value

SQL> select round(dbms_random.value(31, 35)) result
  2  from dual
  3  connect by level <= 15;

    RESULT
----------
        32
        31
        34
        32
        34
        31
        33
        32
        33
        32
        34
        34
        35
        33
        33

15 rows selected.

SQL>

推荐阅读