按顺序排序的SQL顺序

rpf*_*pf3 2 sql select sql-order-by

所以我有两个表,问题和答案,由多对多关系表,QuestionsAnswers加入.问题有一个排序列,允许我控制它们向用户显示的方式,而QuestionsAnswers也有一个排序列,允许我控制每个问题的答案顺序.我的问题是我正在尝试编写一个SQL查询,它将选择所有问题及其答案首先由Question.Sort然后由QuestionsAnswers.Sort排序.两个排序列都可以为空,这些列中的整数应优先于空值.

我可以通过Questions.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;
Run Code Online (Sandbox Code Playgroud)

Mar*_*tos 5

ORDER BY COALESCE(Questions.Sort, 999999999), COALESCE(Answers.Sort, 999999999)
Run Code Online (Sandbox Code Playgroud)