我有一个问题表和一个答案表,其中有4到8个答案连接到一个问题。当我想获得问题列表及其答案时,我使用以下代码:
select q.QuestionID, q.Question, a.Answer
from Question as q inner join Answer as a
on q.QuestionID=a.QuestionID;
这为每个答案提供了一行,每行重复一个问题。但是,我希望每个问题只能获得一行,并在单独的列中显示答案。如果可能的话,我也想将此限制为仅4个答案。如果超过4,则应忽略其余部分。然而,这并不重要。
四个答案列将命名为“Correct”,“Wrong1”,“Wrong2”和“Wrong3”。表中的第一个(具有最低的AnswerID)是正确的。
感谢您的帮助!
答案 0 :(得分:1)
select q.QuestionID, q.Question,
CASE <some field>
WHEN <condition> THEN a.Answer
END as Correct,
CASE <some field2>
WHEN <condition2> THEN a.Answer
END as Wrong1
...
from Question as q inner join Answer as a
on q.QuestionID=a.QuestionID
group by q.QuestionID
您可以按问题分组并为“正确”,“错误1”,“错误2”和“错误3”列定义条件字段