An Ihrer Abfrage sind einige Dinge falsch.
Erstens fehlt Ihnen eine Aggregatfunktion auf Ihrem PIVOT. Sie benötigen ein Aggregat um propertyvalue
.
Zweitens müssen Sie $row1
umschließen , etc mit eckigen Klammern, nicht einfachen Anführungszeichen.
Drittens würde ich einen anderen Alias für as pivot
verwenden
Als Ergebnis lautet der Code:
select *
from
(
select name, propertyvalue, displayname
from indexrows
) a
pivot
(
max(propertyvalue)
for [displayname] in ([$row1], [$row2], [$row3])
) piv;
Siehe SQL Fiddle mit Demo