Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak transponować zbiór wyników z SQL

Wymagane jest użycie funkcji agregującej, jeśli używasz PIVOT . Jednak ponieważ Twój (RespondentId, QuestionId) kombinacja jest unikalna, twoje "grupy" będą miały tylko jeden wiersz, więc możesz użyć MIN() jako funkcja agregująca:

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

Jeśli grupa zawiera tylko jeden wiersz, to MIN(value) = value lub innymi słowy:funkcja agregująca staje się funkcją tożsamościową.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wykonanie funkcji COUNT SQL

  2. SQL Server IF a IIF():jaka jest różnica?

  3. Generuj losowe dane testu czasu SQL Server 2008

  4. SQL Server:Jak pogrupować wartości wielu wierszy w oddzielne kolumny?

  5. Używanie crypt_gen_random do generowania unikalnych numerów seryjnych