sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan transponeres et resultatsæt fra SQL

Det er påkrævet at bruge en aggregeret funktion, hvis du bruger PIVOT . Men da din (RespondentId, QuestionId) kombinationen er unik, dine "grupper" vil kun have én række, så du kan bruge MIN() som en samlet funktion:

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

Hvis en gruppe kun indeholder én række, så er MIN(value) = value , eller med andre ord:den samlede funktion bliver identitetsfunktionen.



  1. Skær i MySQL

  2. Kan denne sql-forespørgsel forenkles?

  3. SQL Query virker i workbench, men giver syntaksfejl i java

  4. Sådan konfigureres automatisk failover for Moodle MySQL-databasen