Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да транспонирате набор от резултати от SQL

Изисква се да използвате агрегатна функция, ако използвате 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 , или с други думи:агрегатната функция става функция за идентичност.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкване и трансформиране на данни от SQL таблица

  2. ИЗБЕРЕТЕ $ (знак за долар)

  3. SQL Server UNION - Какво е поведението по подразбиране ORDER BY

  4. Нива на изолация на SQL сървър:серия A

  5. Експортирайте таблица в SQL Server 2008