我有一个看起来像这样的表:
QuestionNum AnswerChoice
1 a
1 a
2 b
2 b
2 a
3 c
3 d
3 c
4 a
4 b
我想从QuestionNum列中选择不同的值作为列标题,并仍然列出下面的每个答案选项,所以它应该如下所示:
1 2 3 4
a b c a
a b d b
a c
我开始查看Pivot表,但QuestionNum将是未知的。另外,我无法找到从原始行中选择多行的方法。
答案 0 :(得分:0)
您可以使用条件聚合执行此操作。挑战在于您需要一个密钥,row_number()
提供密钥:
select max(case when QuestionNum = 1 then AnswerChoice end) as q_1,
max(case when QuestionNum = 2 then AnswerChoice end) as q_2,
max(case when QuestionNum = 3 then AnswerChoice end) as q_3,
max(case when QuestionNum = 4 then AnswerChoice end) as q_4
from (select t.*,
row_number() over (partition by QuestionNum order by examInstanceID) as seqnum
from table t
) t
group by seqnum;