日期:2014-05-17  浏览次数:20660 次

求一条嵌套查询,随机查询的SQL语句!!!!!!
现在有三张表:题库表,试卷表,答题表
题库表记录有正确答案
试卷表记录每题在题库中的编号
答题表记录学生的答案
想要从答题表中随机选一张没有批改过的试卷,通过相同试卷号在试卷表中找到相应题号,再从题库中找到答案。自己写了个嵌套查询,除了随机选择都能实现了,但是随机搞不好,原来想用order by newId()的,但出错,
消息 1033,级别 15,状态 1,第 1 行
除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。

这个是我写的:
SELECT OptAnswer
FROM OptTiku 
WHERE OptTikuNum = 
    (SELECT Opt1 
     FROM Paper
     WHERE PaperNum=
          (SELECT PaperNum 
           FROM AnsPaper 
           WHERE IsNotCorrect=0 ))
sql 随机

------解决方案--------------------
SELECT OptAnswer
FROM OptTiku 
WHERE OptTikuNum = 
    (SELECT Opt1 
     FROM Paper
     WHERE PaperNum=
          (SELECT top 1 PaperNum 
           FROM AnsPaper 
           order by newid() ))