sql >> Databasteknik >  >> RDS >> Sqlserver

Transponera några kolumner till rader med pivot med SQL

Det finns några saker som är fel med din fråga.

För det första saknar du en aggregatfunktion på din PIVOT. Du behöver ett aggregat runt propertyvalue .

För det andra måste du omge $row1 , etc med hakparenteser inte enstaka citattecken.

För det tredje skulle jag använda ett annat alias för as pivot

Som ett resultat blir koden:

select * 
from 
(
  select name, propertyvalue, displayname
  from indexrows
) a
pivot
(
  max(propertyvalue)
  for [displayname] in ([$row1], [$row2], [$row3])
) piv;

Se SQL-fiol med demo



  1. En enhetsspecifik sekvens

  2. Proaktiva SQL Server Health Checks, Del 5:Väntestatistik

  3. Välj om det finns annat infoga?

  4. Vad är Ångra och gör om i Oracle-databasen