sql - 在 Oracle Query 中的每一行中生成随机数

标签 sql oracle

我想选择表的所有行,然后是 1 到 9 之间的随机数:

select t.*, (select dbms_random.value(1,9) num from dual) as RandomNumber
from myTable t

但是随机数在行与行之间是相同的,只是查询的每次运行不同。如何在同一执行中使行与行之间的数字不同?

最佳答案

就像是?

select t.*, round(dbms_random.value() * 8) + 1 from foo t;

编辑:
David 指出这导致 1 和 9 的分布不均匀。

正如他所指出的,以下给出了更好的分布:
select t.*, floor(dbms_random.value(1, 10)) from foo t;

关于sql - 在 Oracle Query 中的每一行中生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1568630/

相关文章:

oracle - 选择缩写时区

c# - StoreGeneratedPattern 不适用于 DevArt Entity Framework ?

oracle - 我可以删除/添加属性而不产生任何后果吗? Oracle 对象类型

java - org.springframework.jdbc.datasource.DriverManagerDataSource 相对于 oracle.jdbc.pool.OracleDataSource 的优势

mysql - 如何附加一个新的结果列来显示该行的 WHERE 子句的结果?

mysql - 具有单个记录的查询的多个结果

php - 带有准备好的语句的简单 PHP 选择不显示任何结果

sql - 如何从字典 View 中发现 Oracle 12c 关联数组的索引类型?

SQL查询-获取时间段的历史数据

sql - 两个字段的条件排序