在 Oracle 中生成随机序列
Generate random sequence in Oracle
我正在尝试将随机数生成到 2 列中,其中第一列是 from_number,第二列是 to_number。
我的查询如下所示
select to_char(5001 + (level-1)),
to_char(5005 + (level-1))
from dual
connect by level <= 100;
我对上述查询的输出是:
5001 5005
5002 5006
5003 5007
5004 5008
5005 5009
等等...
但我的输出应该如下所示:
5001 5005
5006 5010
5011 5015
5016 5020
等等...
第二行'from_number'应该是第一行'to_number'+1
如何实现?
提前致谢。
请注意,您在这里使用的不是随机序列。这是一个固定的顺序。要知道如何生成随机数,请阅读 this
现在回到你的问题,你可以通过 level
来玩一下。请注意,我将 <=100
减少为 <=20
,因为我们使用的是 5
的乘数,因此您将获得的最大值是 5005 + 20*5 - 5
= 6000
。如果您想要总共 100
行,请将其改回 <=100
。
select
to_char(5001 + (level*5) - 5 ),
to_char(5005 + (level*5) - 5)
from dual
connect by level <= 20;
我正在尝试将随机数生成到 2 列中,其中第一列是 from_number,第二列是 to_number。
我的查询如下所示
select to_char(5001 + (level-1)),
to_char(5005 + (level-1))
from dual
connect by level <= 100;
我对上述查询的输出是:
5001 5005
5002 5006
5003 5007
5004 5008
5005 5009
等等...
但我的输出应该如下所示:
5001 5005
5006 5010
5011 5015
5016 5020
等等...
第二行'from_number'应该是第一行'to_number'+1
如何实现?
提前致谢。
请注意,您在这里使用的不是随机序列。这是一个固定的顺序。要知道如何生成随机数,请阅读 this
现在回到你的问题,你可以通过 level
来玩一下。请注意,我将 <=100
减少为 <=20
,因为我们使用的是 5
的乘数,因此您将获得的最大值是 5005 + 20*5 - 5
= 6000
。如果您想要总共 100
行,请将其改回 <=100
。
select
to_char(5001 + (level*5) - 5 ),
to_char(5005 + (level*5) - 5)
from dual
connect by level <= 20;