首页 新闻 会员 周边 捐助

一道关于sql语句的问题 求真相...

0
悬赏园豆:100 [已解决问题] 解决于 2011-06-08 09:57

这个一个简单的考试系统 先上sql语句:

select * FROM  (select * from singleproblem  where type='1' and testid='1' order by dbms_random.value  ) where rownum <= 5 union all select * FROM (select * from singleproblem  where type='2'  and testid='1'  order by dbms_random.value  ) where rownum <= 1 union all select * FROM (select * from singleproblem  where type='3'  and testid='1'  order by dbms_random.value  ) where rownum <= 1

我做出来随机了,但是因为是用的这个 union all 连接的,所以题目老是先出来单选题,然后复选题,最后才判断题
这3大题里面的题目倒是随机抽的。就是这个顺序好像被union all给套住了。谁在前面他就先随机哪一类题目
关于sql语句字段意思就不用我解释了吧 基本明眼人一看就懂 麻烦大家给个解决方案

问题补充:

补充下 是oracle数据库

果果天涯的主页 果果天涯 | 初学一级 | 园豆:16
提问于:2011-05-27 15:25
< >
分享
最佳答案
0

对Oracle不熟悉,不过看的出你似乎是对每个表随机打乱后再联合,但是为什么不把Union All三个表的查询结果之后再作随机排序呢?

收获园豆:100
七月霄雨 | 小虾三级 |园豆:1282 | 2011-05-27 20:11
已经解决了 不过还是谢谢你
果果天涯 | 园豆:16 (初学一级) | 2011-05-30 10:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册