本文内容:
oracle随机数(结果集)
1,dbms_random.random[常用方法(随机获取一条数据)]
2,内部函数sys_guid()
3,使用sample获得随机结果集
参考资料
dbms_random包
获得随机小数:
限制小数的取值范围可以将dbms_random.value换为dbms_random.value(30,50)
其中的30和50就是它的取值范围.
约束下小数位数:
获得随机整数:
取得到30到50之间的随机整数。
dbms_random.random这样也可以获得整数。
不过值过大。
注意: 在使用sys_guid() 这种方法时,有时会获取到相同的记录,即和前一次查询的结果集是一样的,查找相关资料,有些说是和操作系统有关,在windows平台下正常,获取到的数据是随机的,而在linux等平台下始终是相同不变的数据集,有些说是因为sys_guid()函数本身的问题,即sys_guid()会在查询上生成一个16字节的全局唯一标识符,这个标识符在绝大部分平台上由一个宿主标识符和进程或进程的线程标识符组成,即它很可能是随机的,但是并不表示一定是百分之百的这样。
因此,为确保在不同的平台每次读取的数据都是随机的,我们大多采用使用sample函数或者DBMS_RANDOM包获得随机结果集,其中使用sample函数更常用,因为其查询时缩小了查询范围,在查询大表,且要提取数据不是很不多的情况下,会对查询速度上有明显的提高。