[/quo--oracle随机选题例子:
--脚本
CREATE TABLE t_tiku(
QID NUMBER PRIMARY KEY, --题id
QTEXT VARCHAR2(20), --题名字
RIGHT_ANSWER VARCHAR2(10), --正确答案
FEN NUMBER, --小分
QTYPE NUMBER --题型
)
INSERT INTO VALUES(1001,'text1','a',2,1);
INSERT INTO VALUES(1002,'text2','a',2,1);
INSERT INTO VALUES(1003,'text3','a',2,1);
NSERT INTO VALUES(1004,'text4','a',2,1);
INSERT INTO VALUES(1005,'text5','a',2,1);
INSERT INTO VALUES(1006,'text6','a',2,1);
NSERT INTO VALUES(1007,'text7','a',2,1);
INSERT INTO VALUES(1008'text8','a',2,1);
INSERT INTO VALUES(1009,'text9','a',2,1);
INSERT INTO VALUES(1010,'text10','a',2,1);
随机数:dbms_random.value
select dbms_random.value from t_tiku;
VALUE
0.540034772487469
0.286456681521246
0.160893696485119
0.362955498433561
0.524365619045099
0.31189152490327
0.347187727842068
0.973152290070371
0.102302356581682
0.282644332699209
order by 这个随机数
SELECT qid,qtext ,dbms_random.value FROM t_tiku ORDER BY dbms_random.VALUE;
QID QTEXT VALUE
1009 text9 0.0784931627373549
1006 text6 0.176706781727269
1004 text4 0.231724674763395
1008 text8 0.294310204707983
1005 text5 0.327235915771007
1001 text1 0.462670151206477
1003 text3 0.574868361508014
1002 text2 0.598607107340676
1010 text10 0.598639600520464
1007 text7 0.76203423269984
这样题的顺序就是不固定的
现在想取出前5道题
rownum 关键字
select rownum,qid,qtext from t_tiku
where rownum<=5
order by dbms_random.value;
ROWNUM QID QTEXT
2 1002 text2
3 1003 text3
1 1001 text1
5 1005 text5
4 1004 text4
不管怎样执行:都是取出前5道题,只是顺序是随机的,这不是我们想要的结果。
知识点:要用到子查询
1:先随机查出全部
select qid,qtext from t_tiku order by dbms_random.value;
QID QTEXT
1001 text1
1008 text8
1003 text3
1010 text10
1004 text4
1007 text7
1009 text9
1005 text5
1002 text2
1006 text6
2:根据这个结果在取出前5个
select rownum ,qid,qtext from
(select qid,qtext from t_tiku order by dbms_random.value)
where rownum <=5;
ROWNUM QID QTEXT
1 1010 text10
2 1008 text8
3 1001 text1
4 1002 text2
5 1003 text3
为了测试:再执行一次看看结果
ROWNUM QID QTEXT
1 1004 text4
2 1005 text5
3 1010 text10
4 1009 text9
5 1006 text6 te]
当然这个也可以作为分页
select * from (
select b.*,rownum row_num from
(
select * from t_tiku t order by t.qid asc
) b
) tt where tt.row_num
between 2
and 5
分享到:
相关推荐
本项目"多线程随机抽取学号、题号"是针对教育场景设计的一个实用工具,它能帮助教师或组织者进行随机抽签,例如课堂提问、考试选题等。下面我们将深入探讨这个项目所涉及的关键知识点。 首先,我们要理解多线程的...
2.增加抽题后是否固定选题选项 3.修正其他已知BUG V2009 Build 1031 1.增加前台抽题量是否超出数据库数量检测 2.改善前台考生界面 3.修改部分参数和提示,方便架设 4.增加了后台考生搜索和考生成绩搜索 5.修正其他...
列举几个典型实用的例子: 实例37 读取随机文件 实例38 操作EXECL文件 实例39 生成PDF文件 实例47 使用JAVAMAIL发送邮件 实例48 使用JAVAMAIL接收邮件 实例62 多线程 实例68 使用DOM解析XML 实例69 使用SAX解析XML ...
test1.m:一维线性卡尔曼滤波的例子 jaccsd.m:用于求解EKF算法中的雅克比矩阵 EKF.m:EKF算法仿真程序 仿真结果 说明: 1.仿真软件采用MATLAB2010b 2.控制量和姿态角速度值采用随机生成的数据(使用实际数据更好) 3....
在这个例子中,计算χ2值,对比观察值与期望值,然后与临界值比较,可以判断石棉接触与肺癌之间的关联是否具有统计学意义。 总的来说,临床科研设计是一个严谨的过程,需要考虑多方面因素,以确保研究结果的可靠性...
在“考试选题系统”这样的应用中,我们可能需要生成指定数量的随机题目。这可以通过循环和上述方法实现: ```cpp int num_questions = 5; // 需要生成的题目数量 for (int i = 0; i ; ++i) { int question_id = ...
在最后一个例子中,我们提取了一个字符数组`str1`中所有下标为奇数的元素,并将其复制到另一个字符数组`str2`中。 ```cpp char str1[] = "hello world"; // 假设用户输入为"hello world" char str2[strlen(str1) / 2...
为了更直观地了解这些排序算法的实现及其性能差异,可以通过具体的例子来进行说明。例如,可以选取一个小规模的数据集(如10个随机数),手动演示每种排序算法的过程,并计算其运行时间。 #### 八、总结 通过本项目...
说明:题为作者本科毕业设计的选题,使用EKF(Extended Kalman Filter, 扩展卡尔曼滤波)算法来对四旋翼无人机的姿态进行滤波和估计,姿态包括:俯仰角、滚转角、偏航角的角度值和角速度值。前提:角度值无法直接通过...
凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...
文章指出,在教授C语言的过程中,单纯通过语言和文字例子来解释复杂的概念和逻辑往往效果不佳,尤其是当学生难以将这些概念与实际问题联系起来时。利用Flash制作的教学课件可以以随机性、灵活性、全方位和立体化的...
咖啡厅连锁分析项目的第4部分:推介会演示在项目演示中,我们解决了以下问题:选题这是对想要了解其客户的咖啡连锁企业的分析。我们选择此主题的原因了解客户群是任何业务中最重要的方面之一,在全国经营咖啡店的...
在这个例子中,我们定义了一个名为`maxVale`的函数,它接受数组的起始索引`low`、结束索引`high`以及整数数组`array`作为参数。当`low`等于`high`时,返回数组中的唯一元素;否则,将数组一分为二,分别求左半部分和...
- **简单随机抽样**:完全随机选取样本。 - **系统抽样**:按固定间隔选取样本。 - **分层抽样**:将总体分为层次再抽样。 - **整群抽样**:抽取整个群作为样本。 - **分段抽样**:先抽群再抽样本。 4. **户内...