`
thomas0988
  • 浏览: 473158 次
  • 性别: Icon_minigender_1
  • 来自: 南阳
社区版块
存档分类
最新评论

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;


============================================================
http://blog.sina.com.cn/s/blog_6a01140c0100wimi.html
分享到:
评论

相关推荐

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

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

    oracle取随机数

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

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

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

    oracle中随机数的获取

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

    Oracle 随机数

    利用oracle的dbms_random包结合rownum来实现,示例如下,随机取499户: select * from ( select * from busi.t_ar_userinfo order by dbms_random.value) where rownum &lt; 500; 有关dbms_random的参考文献,链接...

    SQLServer和Oracle的常用函数对比

    SQLServer和Oracle的常用函数对比 ...12.取随机数 13.取符号 14.圆周率 15.sin,cos,tan 参数都以弧度为单位 16.Asin,Acos,Atan,Atan2 返回弧度 17.弧度角度互换 18. 求集合最大值 。。。。。。。

    取不重复的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....

    程序员的SQL金典6-8

     5.1.4 求随机数  5.1.5 舍入到最大整数  5.1.6 舍入到最小整数  5.1.7 四舍五入  5.1.8 求正弦值  5.1.9 求余弦值  5.1.10 求反正弦值  5.1.11 求反余弦值  5.1.12 求正切值  5.1.13 求反正切值  5.1.14...

    程序员的SQL金典7-8

     5.1.4 求随机数  5.1.5 舍入到最大整数  5.1.6 舍入到最小整数  5.1.7 四舍五入  5.1.8 求正弦值  5.1.9 求余弦值  5.1.10 求反正弦值  5.1.11 求反余弦值  5.1.12 求正切值  5.1.13 求反正切值  5.1.14...

    程序员的SQL金典3-8

     5.1.4 求随机数  5.1.5 舍入到最大整数  5.1.6 舍入到最小整数  5.1.7 四舍五入  5.1.8 求正弦值  5.1.9 求余弦值  5.1.10 求反正弦值  5.1.11 求反余弦值  5.1.12 求正切值  5.1.13 求反正切值  5.1.14...

    程序员的SQL金典4-8

     5.1.4 求随机数  5.1.5 舍入到最大整数  5.1.6 舍入到最小整数  5.1.7 四舍五入  5.1.8 求正弦值  5.1.9 求余弦值  5.1.10 求反正弦值  5.1.11 求反余弦值  5.1.12 求正切值  5.1.13 求反正切值  5.1.14...

    程序员的SQL金典.rar

     5.1.4 求随机数  5.1.5 舍入到最大整数  5.1.6 舍入到最小整数  5.1.7 四舍五入  5.1.8 求正弦值  5.1.9 求余弦值  5.1.10 求反正弦值  5.1.11 求反余弦值  5.1.12 求正切值  5.1.13 求反正切值  5.1.14...

    C#基类库(苏飞版)

    1.数据访问基础类(基于Oracle),主要是用来访问Oracle数据库的。 2.得到最大值;是否存在;是否存在(基于OracleParameter ); 3.执行SQL语句,返回影响的记录数; 4.执行多条SQL语句,实现数据库事务; 5.执行带一个...

    C#编程经验技巧宝典

    54 &lt;br&gt;0075 用回溯法找出n个自然数中取r个数的全排列 55 &lt;br&gt;0076 约瑟夫环问题 56 &lt;br&gt;0077 猴子选大王 57 &lt;br&gt;0078 如何判断IP是否正确 57 &lt;br&gt;0079 如何将小写金额转换为大写金额 57...

Global site tag (gtag.js) - Google Analytics