`

oracle之随机数(结果集)

阅读更多
参考资料
Oracle中随机抽取N条记录
http://hpitcn.iteye.com/blog/676330
1 dbms_random.random[常用方法(随机获取一条数据)]
 select * from (select t.* from T t order by dbms_random.random) where rownum<2; 

2  内部函数sys_guid() 
select * from (select  t.* from T t order by sys_guid()) where rownum < (select  count(1) from T); 
select * from (select  t.*  from T t order by sys_guid()) where rownum <2; 

3 使用sample获得随机结果集
 select  *  from T sample(10) seed(10) where rownum<6;   
 select * from T sample block(10) where rownum<6;  


参考资料
dbms_random包
获得随机小数Sql如下:
select dbms_random.value from dual;
0.438497011075884
限制小数的取值范围可以将dbms_random.value换为dbms_random.value(30,50)
其中的30和50就是它的取值范围.
约束下小数位数Sql如下:
select round(dbms_random.value,3) from dual;
0.819   保留小数位数为3位的随机数
获得随机整数呢?
select floor(dbms_random.value(30,50)) from dual;
这样就可以取得到30到50之间的随机整数啦。
dbms_random.random这样也可以获得整数。不过值过大。

注: 在使用sys_guid() 这种方法时,有时会获取到相同的记录,即和前一次查询的结果集是一样的,查找相关资料,有些说是和操作系统有关,在windows平台下正常,获取到的数据是随机的,而在linux等平台下始终是相同不变的数据集,有些说是因为sys_guid()函数本身的问题,即sys_guid()会在查询上生成一个16字节的全局唯一标识符,这个标识符在绝大部分平台上由一个宿主标识符和进程或进程的线程标识符组成,这就是说,它很可能是随机的,但是并不表示一定是百分之百的这样。     
       所以,为确保在不同的平台每次读取的数据都是随机的,我们大多采用使用sample函数或者DBMS_RANDOM包获得随机结果集,其中使用sample函数更常用,因为其查询时缩小了查询范围,在查询大表,且要提取数据不是很不多的情况下,会对查询速度上有明显的提高。
分享到:
评论

相关推荐

    oracle中随机数的获取

    此外,还可以利用这些随机数函数来创建复杂的测试数据集,比如模拟用户行为、生成随机订单等。在进行性能测试或者压力测试时,这样的数据非常有用。 总的来说,Oracle的DBMS_RANDOM包提供了丰富的功能,能够满足大...

    oracle取随机数

    在Oracle数据库环境中,生成随机数是一项常见且实用的操作,它被广泛应用于数据模拟、测试、...无论是进行数据清洗、创建测试数据集还是实现安全性增强,掌握这些随机数生成方法都将大大提升工作效率和数据处理能力。

    利用ORACLE实现数据的抽样

    在IT行业的数据分析领域,抽样技术是处理大数据集的关键手段之一。当面对海量数据时,进行全面分析既不现实也不经济,这时,抽样方法成为了一种高效的数据分析策略。本文将深入探讨如何在Oracle数据库环境下实现数据...

    Oracle高级sql学习与练习

    UNION和UNION ALL用于联合多个结果集,不同之处在于UNION ALL会将所有结果包括重复项,而UNION则会自动去除重复的结果。INTERSECT用来返回两个查询结果集的交集,而MINUS则返回第一个查询结果集相对于第二个查询结果...

    Oracle造数工具

    cx_Oracle库是Python与Oracle数据库之间的桥梁,它允许Python代码执行SQL语句、处理结果集,甚至处理PL/SQL块。 在"概述.txt"文件中,可能包含了工具的使用说明、安装步骤、依赖项以及如何配置数据库连接等信息。这...

    Oracle 10g应用指导

    第10章 数据库管理,包括导出数据库模式的DDL脚本,管理Oracle数据库实例的方法、数据恢复与Flashback以及更改数据库字符集等具体方法。第11章 数据库的安全管理。包括加密Oracle子程序,存储应用程序用户名和口令,...

    SQLServer和Oracle常用函数对比

    其中,Microsoft SQL Server和Oracle Database是两个广泛使用的DBMS,各自拥有庞大的用户群和丰富的功能集。在开发过程中,理解并掌握这两种数据库系统之间的差异,尤其是它们在函数处理上的不同,对于提高开发效率...

    oracle函数大全中文

    Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,以其强大的功能和稳定性著称。在这个"Oracle函数大全中文"资源中,包含了对Oracle数据库中各种函数的详细解释,这些函数涵盖了数值型、字符型、日期型、...

    Oracle系统包详细使用方法

    总的来说,Oracle系统包是数据库管理员和开发人员的强大工具集,涵盖了从调试和日志记录到安全管理、任务调度和数据处理的各个方面。熟练掌握这些包的使用,能极大地提升数据库管理效率和应用程序性能。在实际应用中...

    Oracle+10g应用指导与案例精讲

    第10章 数据库管理,包括导出数据库模式的DDL脚本,管理Oracle数据库实例的方法、数据恢复与Flashback以及更改数据库字符集等具体方法。第11章 数据库的安全管理。包括加密Oracle子程序,存储应用程序用户名和口令,...

    Oracle函数大全.pdf

    在Oracle数据库中,函数是一类预定义的子程序,它可以对输入参数执行运算,并返回一个结果值。Oracle提供了一系列的函数,用于处理不同类型的数据,如字符串、数字、日期和时间等。下面按照文档所提供的内容,详细...

    oracle最全函数大全

    此外,Oracle 还提供了一系列其他有用的函数,如条件判断函数`CASE`、随机数生成函数`DBMS_RANDOM.RANDOM`等。 ### 总结 通过本文的介绍,我们了解了 Oracle 数据库中不同类型的函数及其用途。分析函数特别适合...

    (精)Oracle常用傻瓜问题1000问

    以上知识点涵盖了Oracle数据库中常见的操作,包括基本查询、系统视图使用、权限管理、表空间管理、随机数生成、用户对象查询、数据处理、日期时间操作以及数据集操作。掌握这些知识点对于Oracle数据库的日常管理和...

    oracle知识

    ##### 9.11 有返回值的存储过程(列表[结果集]) - 创建。 - 调用。 ##### 9.12 编写分页过程 - 实现。 - 应用场景。 ##### 9.13 Oracle 异常 异常处理是 PL/SQL 中的重要组成部分,用于处理运行时错误。 ####...

    Oracle应用常见傻瓜问题 1000问

    Oracle提供了一个内置的随机数生成函数`DBMS_RANDOM.RANDOM`,用于生成随机数。例如: ```sql SELECT DBMS_RANDOM.RANDOM AS random_number FROM dual; ``` #### 33. Linux下查询磁盘竞争状况命令? 在Linux下,...

    Oracle大数据量数据生成器

    Oracle大数据量数据生成器,Data_Generator,是一个实用工具,用于快速生成大量模拟真实的数据,这对于测试数据库性能、填充示例数据库或者进行数据仓库建模非常有用。在Oracle环境中,生成大量的测试数据可以帮助...

    oracle常用的100个函数

    Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。作为DBA(数据库管理员)或开发人员,掌握Oracle的各种函数对于优化查询、数据处理和日常维护至关重要。以下是一些...

    oracle+函数大全.rar--ora书

    8. 其他特殊函数:如`USER`返回当前用户,`DBMS_OUTPUT.PUT_LINE()`用于在PL/SQL中打印信息,`DBMS_RANDOM.VALUE()`生成随机数等。 理解并熟练运用这些函数是Oracle数据库开发人员的基本功。在实际工作中,我们可能...

Global site tag (gtag.js) - Google Analytics