产生随机记录的方法很多,完全可以不必用你提到的游标加数组的方法: (1)完全随机 select id from (select id from XXX order by dbms_random.value()) where rownum< N; (2)半随机( 此处要注意v_count与N的关系,要判断处理,但记录数多的时候也有点时间优势,呵呵) v_no:= dbms_random.value(1,v_count) --v_count为XXX表的记录总数 select aa.id from (select id,rownum row_num from XXX where rownum<=v_no) aa where aa.row_num> v_no - N;
这句可以随机选出记录 select * from xxx id in ( (select rownum rn,a.* from t_name a)a where rn=round(dbms_random.value(1,n)));
(1)完全随机
select id from (select id from XXX order by dbms_random.value())
where rownum< N;
(2)半随机( 此处要注意v_count与N的关系,要判断处理,但记录数多的时候也有点时间优势,呵呵)
v_no:= dbms_random.value(1,v_count) --v_count为XXX表的记录总数
select aa.id from (select id,rownum row_num from XXX where rownum<=v_no) aa
where aa.row_num> v_no - N;
这句可以随机选出记录
select * from xxx id in ( (select rownum rn,a.* from t_name a)a where rn=round(dbms_random.value(1,n)));