我正在使用Microsoft sql Server 2008.
我有一个看起来像这样的表:
我有一个看起来像这样的表:
|======================================================| | RespondentId | QuestionId | AnswerValue | ColumnName | |======================================================| | P123 | 1 | Y | CanBathe | |------------------------------------------------------| | P123 | 2 | 3 | TimesADay | |------------------------------------------------------| | P123 | 3 | 1.00 | SoapPrice | |------------------------------------------------------| | P465 | 1 | Y | CanBathe | |------------------------------------------------------| | P465 | 2 | 1 | TimesADay | |------------------------------------------------------| | P465 | 3 | 0.99 | SoapPrice | |------------------------------------------------------| | P901 | 1 | N | CanBathe | |------------------------------------------------------| | P901 | 2 | 0 | TimesADay | |------------------------------------------------------| | P901 | 3 | 0.00 | SoapPrice | |------------------------------------------------------|
我想将行翻转为列,以便此表如下所示:
|=================================================| | RespondentId | CanBathe | TimesADay | SoapPrice | |=================================================| | P123 | Y | 3 | 1.00 | |-------------------------------------------------| | P465 | Y | 1 | 0.99 | |-------------------------------------------------| | P901 | N | 0 | 0.00 | |-------------------------------------------------|
(这里的示例数据是任意组成的,所以很傻)
源表是一个临时表,大约有70,000行.
我需要写什么sql才能做到这一点?
更新
>我甚至不知道PIVOT是否是正确的选择.
>我不知道PIVOT上的哪一列.
>文档提及<聚合功能>和<列聚合>而且我不想聚合任何东西.
提前致谢.