源表:
Create Table ExamAnswers
{
StudentID varchar(12),
QuestionID int,
Answer char(1)
}
这将充满
Bob 1 a
Bob 2 c
...
Bob 100 b
Chris 1 c
Chris 2 d
...
Chris 100 null
等,约500名学生。
Chris 没有完成考试,但是第 100 个问题存储为 null,因此可以保证每个学生正好有 100 行,但实际答案是 null 或字符。
如果有任何区别,答案在 {a,b,c,d,e,f}
此设置非常适合实际的考试应用程序,并且标记它是微不足道的。
现在我有一个报告要求,出于审计目的,我需要生成一个如下所示的表格:
ID 1 2 ... 100
Bob a c ... b
Chris c d ....null
所以我花了半天时间阅读 PIVOT 功能,我就是不明白。
那一定是我读过的最难以理解的文档。
一方面,它需要和聚合函数——我到底应该在这里聚合什么?
我认为这只是可能存在的 PIVOT 函数的最简单用法,而且我在任何地方都找不到像样的示例。帮助!