[英]Oracle SQL - Generate and update a column with different random number in every row
需要SQL帮助 - 我想用不同的随机数生成和更新每一行的列。
数据库#Oracle 10g。
示例 - 当我执行类似这样的操作时,它会更新具有相同编号的所有行
update mytable r
set r.generated_num =
(select floor(dbms_random.value(100,9999999)) from dual).
有什么建议?
看起来像子查询是问题。
这似乎是有效的 -
update mytable r set r.generated_num = TRUNC(dbms_random.value(1,9999999))
如果你真的需要一个独特的随机数,那么你将不得不生成比行数更多的数字。
请注意以下查询:
with generator as
(select /*+ materialize */ rownum rn from dba_objects where rownum <= 250)
select count(distinct rv), count(rv) from
(
select trunc(dbms_random.value(1,9999999)) as rv
from generator v1
cross join generator v2
cross join generator v3
where rownum <= 10000000
)
一些示例执行:
COUNT(DISTINCTRV) COUNT(RV)
----------------- ----------
6321429 10000000
6321827 10000000
6321941 10000000
6321507 10000000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.