最近在做一個小的考試系統,需要用到隨機抽取題目,於是就從網上搜到如下方法:
1.dbms_random包
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範圍的隨機數
2.按概率抽取:
select * from tablename sample(百分比);
3.sys_guid
select * from (select * from tablename order by sys_guid()) where rownum<10;