Изисква се да използвате агрегатна функция, ако използвате PIVOT
. Въпреки това, тъй като вашият (RespondentId, QuestionId)
комбинацията е уникална, вашите „групи“ ще имат само един ред, така че можете да използвате MIN()
като агрегатна функция:
SELECT RespondentId, CanBathe, TimesADay, SoapPrice
FROM (SELECT RespondentId, ColumnName, AnswerValue FROM MyTable) AS src
PIVOT (MIN(AnswerValue) FOR ColumnName IN(CanBathe, TimesADay, SoapPrice)) AS pvt
Ако групата съдържа само един ред, тогава MIN(value) = value
, или с други думи:агрегатната функция става функция за идентичност.