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 小结(转)