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;
select * from (select * from tablename order by sys_guid()) where rownum < N;
select * from (select * from tablename order by dbms_random.value) where rownum< N;
这两个看起来可以,但是能解释一下吗?
select * from yourtable order by newid()
这个不行,newid()是什么东西? 能说明一下吗?
Sample恐怕是不行的,试一下这2个:
select * from (select * from tablename order by sys_guid()) where rownum < N;
select * from (select * from tablename order by dbms_random.value) where rownum< N;