作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有两个表,Questions 和 Answers,由多对多关系表 QuestionsAnswers 连接。 Questions 有一个排序列,允许我控制它们如何显示给用户,而 QuestionsAnswers 也有一个排序列,允许我控制每个问题的答案顺序。我的问题是我正在尝试编写一个 SQL 查询,该查询将选择所有问题及其首先按 Question.Sort 然后按 QuestionsAnswers.Sort 排序的答案。两个排序列都可以为 null,并且这些列中的整数应优先于 null。
我可以让 Order By Questions.Sort 正常工作,但是一旦我添加第二个排序列,它就会出错。例如,如果一个问题的 Sort = 0 意味着它应该是第一个显示的问题但对其答案没有任何偏好,它将在具有 Questions.Sort = null 和 QuestionsAnswers.Sort = 0 的 QuestionsAnswers 行下方排序.
如果这甚至可行,任何提示或想法都会很棒。
编辑:
SELECT
Q.Id AS QuestionId,
Q.Name AS Question,
A.Id AS AnswerId,
A.Text AS Answer
FROM
dbo.Questions AS Q
INNER JOIN
dbo.QuestionsAnswers AS QA
ON Q.Id = QA.QuestionId
INNER JOIN
dbo.Answers AS A
ON QA.AnswerId = A.Id
ORDER BY
ISNUMERIC(Q.Sort) DESC,
Q.Sort,
Q.Id,
A.Text;
最佳答案
ORDER BY COALESCE(Questions.Sort, 999999999), COALESCE(Answers.Sort, 999999999)
关于SQL Order By 中的 Order By,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307932/
我是一名优秀的程序员,十分优秀!