通过数据库实现和程序实现的比较
1、通过数据库实现
Oracle可以通过我在
http://community.csdn.net/Expert/topic/4832/4832629.xml?temp=.4810602
中给出的方法来实现
select ID,name,star_level from (select ID,name,star_level,round(dbms_random.value(1,15))-star_level t from tbl_A) where t<=0
select ID,name,star_level from (select ID,name,star_level,mod(abs(dbms_random.random),15)-star_level t from tbl_A) where t<=0
select ID,name,star_level from (select ID,name,star_level from tbl_A order by dbms_random.value*(1+star_level/k) desc) where rownum<5
4.
select count(1) from EXAM where level=1;
select count(1) from EXAM where level=2;
select count(1) from EXAM where level=3;
select count(1) from EXAM where level=4;
select count(1) from EXAM where level=5;
得到所有级别的试题数的结果:(假设结果如下)
100000
30000
10000
5000
5000 ,
好了, 现在的问题就转变成,怎样在100000题1级试题中选出50题, 30000题2级试题中选出30题 .......