Oracle中的随机数

select * from (select * from base_coun order by sys_guid()) where rownum < 99;
select * from (select * from tablename order by dbms_random.value) where rownum< N;

1、使用dbms_random程序包, 取出随机数据。先创建序列
create sequence tmp_id increment by 1 start with 1 maxvalue 9999999 nocycle nocache;
2. 然后创建一个临时表tmp_1,记录全部取出来。
create table tmp_1 as select tmp_id.nextval as id,email,mobileno from 表名 where 条件;
  找到最大的id号:    
  select max(id) from tmp_1;
3、设定一个生成随机数的种子
  execute dbms_random.seed(12345678);
4、调用随机数生成函数dbms_random.value生成临时表tmp_2,假设随机取200个
create table tmp_2 as select trunc(dbms_random.value(1,5000)) as id from tmp_1 where rownum<201;
 
说明:dbms_random.value(1,5000)是取1到5000间的随机数,会有小数,
      trunc函数对随机数字取整,才能和临时表的整数ID字段相对应。

posted on 2005-10-10 10:34  冷月孤峰  阅读(415)  评论(0)    收藏  举报