sql >> Database >  >> RDS >> Sqlserver

Hoe een resultatenset van SQL te transponeren

Het is vereist om een ​​aggregatiefunctie te gebruiken als u PIVOT . gebruikt . Aangezien uw (RespondentId, QuestionId) combinatie is uniek, uw "groepen" zullen slechts één rij hebben, dus u kunt MIN() gebruiken als een geaggregeerde functie:

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

Als een groep slechts één rij bevat, dan MIN(value) = value , of met andere woorden:de aggregatiefunctie wordt de identiteitsfunctie.



  1. Hoe mysql verbinden met Basex?

  2. Zorg voor PL/SQL-uitvoer in realtime

  3. Woordafbrekingstekens wijzigen in SQL Server Full-Text indexering

  4. MySQL-prestaties, inner join, hoe te vermijden Tijdelijk en filesort gebruiken