[英]Combine multiple inner joined rows into one row with multiple columns
我有一个问题表和一个答案表,其中有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,则应忽略其余部分。 但是,这并不重要。
四个答案列将分别命名为“正确”,“错误1”,“错误2”和“错误3”。 表中的第一个(具有最低的AnswerID)是正确的。
谢谢您的帮助!
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”列定义条件字段
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.