`

Oracle 随机数

 
阅读更多

转自:http://blog.sina.com.cn/s/blog_6a01140c0100wimi.html

 

Oracle 取随机数

 
1、从表中随机取记录

     select * from (select * from staff order by dbms_random.random)
     where rownum < 4

     表示从STAFF表中随机取3条记录

2、产生随机数

         SELECT DBMS_RANDOM.RANDOM FROM DUAL;
         产生一个任意大小的随机数

        SELECT ABS(MOD(DBMS_RANDOM.RANDOM,100)) FROM DUAL;
         产生一个100以内的随机数

         SELECT TRUNC(100+900*dbms_random.value) FROM dual;
         产生一个100~1000之间的随机数

         SELECT dbms_random.value FROM dual;
         产生一个0~1之间的随机数

         SELECT dbms_random.value(10,20) FROM dual;
         产生一个10~20之间的随机数

         SELECT dbms_random.normal FROM dual;
         NORMAL函数返回服从正态分布的一组数。此正态分布标准偏差为1,期望值为0。这个函数返回的数值中有68%是介于-1与+1之间,95%介于-2与+2之间,99%介于-3与+3之间。

3、产生随机字符串

         select dbms_random.string('P',20) from dual;
         第一个参数 P 表示 printable,即字符串由任意可打印字符构成
         第二个参数表示返回字符串长度

4、ceil( n )函数是返回大于或等于n的最小整数。
DBMS_RANDOM.VALUE()是随机产生( 0,1 )之间的数。
要产生两位的随机数,可以DBMS_RANDOM.VALUE()*100,这样产生( 0,100 )
的随机数,当产生( 0,10)之间的数时,只要加上10就可以保证产生的数都是两位了。

ORACLE的PL/SQL提供了生成随机数和随机字符串的多种方式,罗列如下:

1、小数( 0 ~ 1)

     select dbms_random.value from dual

2、指定范围内的小数 ( 0 ~ 100 )
     select dbms_random.value(0,100) from dual


3、指定范围内的整数 ( 0 ~ 100 )

     select trunc(dbms_random.value(0,100)) from dual

4、长度为20的随机数字串

     select substr(cast(dbms_random.value as varchar2(38)),3,20) from dual

5、正态分布的随机数

     select dbms_random.normal from dual

6、随机字符串

     select dbms_random.string(opt, length) from dual

      opt可取值如下:
      'u','U'    :    大写字母
      'l','L'    :    小写字母
      'a','A'    :    大、小写字母
      'x','X'    :    数字、大写字母
      'p','P'    :    可打印字符

7、随机日期

     select to_date(2454084+TRUNC(DBMS_RANDOM.VALUE(0,365)),'J') from dual

     通过下面的语句获得指定日期的基数

     select to_char(sysdate,'J') from dual

8、生成GUID

     select sys_guid() from dual

--生成带分隔符(-)的GUID的自定义函数
create or replace function my_guid
return varchar2
is
    guid varchar(36);
    temp varchar(32);
begin
    temp:=sys_guid();
    guid:= substr(temp,1,8) || '-'
         ||substr(temp,9,4) || '-'
         ||substr(temp,13,4)|| '-'
         ||substr(temp,17,4)|| '-'
         ||substr(temp,21,12);
    return guid;
end;

分享到:
评论

相关推荐

    ORACLE随机数DBMS_RANDOM包

    主要介绍了ORACLE随机数DBMS_RANDOM包,通过dbms_random包调用随机数的方法大致有4种,具体哪4种请看本篇文章吧

    Oracle插入随机数

    自定义Oracle函数,向Oracle数据库中插入随机数。

    oracle中随机数的获取

    oracle中随机数的获取 通过sql获取各种类型的随机数

    Oracle里抽取随机数的多种方法

    本文以实例的方式来讲解如何抽取随机数的多种方法。

    Oracle里取随机数的几种具体的方法

    本文介绍了Oracle里取随机数的几种具体的方法。

    oracle取随机数

    oracle产生随机字符型,数值型或生成GUID

    Oracle经典SQL语句

    -- 随机数 -- 产生业务流水号 -- 查询某张表中有哪些字段 -- 自循环表中 由叶子节点查父节点 -- 查子节点 复制一张表的数据到另外一张表中 PLSQL中存储过程及游标的基本使用 Oracle中恢复某张表丢失数据的方法 -- 把...

    C#随机数生成并排序然后插入数据库

    这个是C#培训的一个题目:随机生成250万个随机数 并将其排序,最后将这个250万数据插入到数据库(我用的是ORACLE) 这个耗时我测试了在200秒以内 仅供新手参考 因为我也只是个新手

    Oracle中如何生成随机数字、随机字符串、随机日期

    Oracle中如何生成随机数字、随机字符串、随机日期 详细实例脚本。

    Oracle 10g应用指导

    介绍了PL/SQL中常用的函数、异常处理等,还有对随机数生成、分析函数、多表合并、多表插入等问题的解决方法。第7章 子程序和触发器,包括函数、存储过程、包以及触发器等。对子程序的调用者权限、管道表函数、传递...

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

    介绍了PL/SQL中常用的函数、异常处理等,还有对随机数生成、分析函数、多表合并、多表插入等问题的解决方法。第7章 子程序和触发器,包括函数、存储过程、包以及触发器等。对子程序的调用者权限、管道表函数、传递...

    Java随机数生成主键(16位)

    oracle自动生成主键的工具类,就一个简单的方法。

    SQLServer和Oracle的常用函数对比

    SQLServer和Oracle的常用函数对比 共计45点 1.绝对值 2.取整(大) 3.取整(小) 4.取整(截取) 5.四舍五入 6.e为底的幂 7.取e为底的对数 8.取10为底对数 9.取平方 10.取平方根 11.求任意数为底的幂 12.取...

    取不重复的N个随机数

    随机函数的用法,数组的用法,GOTO语句的用法

    oracle统计时间段内每一天的数据(推荐)

    下面给大家介绍oracle统计时间段内每一天的数据,具体sql语句如下所示: 1. 生成1000个随机数 SELECT ROWNUM RN, DBMS_RANDOM.VALUE(0, 1000) RANDOM FROM DUAL CONNECT BY ROWNUM &lt;= 1000; 注:DBMS_RANDOM....

    solana.games:基于Solana的随机性游戏

    第0层:简单游戏经典骰子-掷骰的结果由Oracle系统确定,该系统在Solana上生成随机数。 从12中选择-中奖号码由Oracle系统确定,该系统在Solana上生成随机数。 掷硬币-获胜方是由Oracle系统确定的,该系统在Solana上...

    Oracle P/L SQL实现发送Email、浏览网页等网络操作功能

    Oracle P/L SQL实现发送Email、浏览网页等网络操作功能 Oracle P/L SQL实现发送Email、浏览网页等网络操作功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 --.使用聚合函数实现 多行...

Global site tag (gtag.js) - Google Analytics