sql - 如何随机排序结果,但有例外?
问题描述
我正在创建测验和测试系统。
在数据库中,我们有一个问题列表和一个可能的答案列表。
这些都应该以随机顺序返回,所以学生不能互相抄袭。
一个例外是当问题有可能的答案时,例如“以上所有内容”,在这种情况下,我们给它一个布尔值,[AlignBottom]
. 如果[AlignBottom]
是 1,我们必须强制这个答案出现在给定问题的最后,其余的答案仍然在它之前随机加载。
这是我首先尝试的,只是为了看看会发生什么。显然它没有用:
SELECT [AnswerID]
,[QuestionID]
,[AnswerValue]
,[IsCorrect]
,[AlignBottom]
FROM [dbo].[Test-Answers]
WHERE QuestionID = 4
ORDER BY AlignBottom ASC, NewID()
而且我在SO上找不到这种特定的解决方案。
帮助?
解决方案
根据您的描述,您的查询应该有效:
ORDER BY AlignBottom ASC, NewID()
推荐阅读
- ios - Cocoapods 不会安装?
- excel - 如何在 VBA 中将我的字典详细信息表示为数组?
- python - Django返回不同的图像
- deepsecurity - 趋势科技服务器深度安全防护系统 12 内的应用程序控制中的一台计算机的维护模式
- xml - XML - 按名称查找具有特定值的属性的节点
- python - Pandas:根据另一列的映射值创建新列
- tensorflow - 为什么embed_input的形状是1000?
- javascript - 在对话框流中使用 if 条件不起作用
- swift - 前提条件失败:从 iOS 13.4 开始在 SwiftUI 中使用 GeometryReader 时输入索引无效
- html - 来自 API 的 HTML 标签