Random.Value 时的情况

Posted

技术标签:

【中文标题】Random.Value 时的情况【英文标题】:Case when Random.Value 【发布时间】:2017-01-20 11:40:53 【问题描述】:

我的查询是基于多个“case when”语句构建的,我正在尝试将大约 10 条记录的随机样本添加到此组合中。

我想我正在寻找类似的东西:

 Case when (select dbms_random.random DOC_NUM (x10) then 'Random' else '-' end rand_doc

如果这样的事情在什么时候是可能的?

没有我想要寻找的具体标准,但如果它在 case when 语句中有所帮助,那么我可以添加 'doc_num Like '%5%'' 例如,因为这仍然会给我一个不错的随机样本(如doc_num 是 8 个数字)

输出示例:

12345678 'random'
12346789 '-'
12348790 '-'
21212120 '-'
65656565 'random'

【问题讨论】:

用您正在使用的数据库标记您的问题。样本数据和期望的结果也会有所帮助。 您想在结果中添加个随机记录,或者您想从中随机抽取 10 条记录? 我想用“随机”标记其中的 10 个,所以随机抽取 10 个样本 【参考方案1】:

你可以这样做:

select t.*,
       (case when row_number() over (order by dbms_random.random) <= 10
             then 'random'
             else '-'
        end) as rand_doc
from t;

【讨论】:

这正是我所追求的,谢谢戈登的快速回复。

以上是关于Random.Value 时的情况的主要内容,如果未能解决你的问题,请参考以下文章

ORA-01652: 使用 DBMS_RANDOM.VALUE 时无法在表空间 TEMP 错误中将临时段扩展 128

oracle系统包——dbms_random用法及order by 小结(转)

DBMS_RANDOM.VALUE返回的值等于HIGH值

Oracle dbms_random随机函数包

dbms_random.value 与下面的代码一起工作正常,除了需要通过分配的字段更改日期

dbms_random.value函数 trunc()函数的用法