【发布时间】:2021-02-20 11:04:52
【问题描述】:
我想生成 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 的范围内。
【问题讨论】:
-
在您问题的第一行中,您说“介于 32 和 35 之间”,在最后一行中,您说“范围 31 到 35”。你能下定决心吗?除此之外,您是否希望以(大约)相等的频率生成数字?如果是,请注意
round函数不会这样做。你应该使用trunc。