[Q]随机抽取前N条记录的问题
[A]8i以上版本
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;
注:dbms_random包需要手工安装,位于$ORACLE_HOME/rdbms/admin/dbmsrand.sql
dbms_random.value(100,200)可以产生100到200范围的随机数
如果你只取一条,可以使用:
select * from (select * from tablename order by sys_guid()) where rownum < 2;
select * from (select * from tablename order by dbms_random.value) where rownum< 2;