Der er et par ting, der er galt med din forespørgsel.
For det første mangler du en samlet funktion på din PIVOT. Du har brug for et aggregat omkring propertyvalue
.
For det andet skal du omgive $row1
osv. med firkantede parenteser ikke enkelte anførselstegn.
For det tredje ville jeg bruge et andet alias for as pivot
Som et resultat vil koden være:
select *
from
(
select name, propertyvalue, displayname
from indexrows
) a
pivot
(
max(propertyvalue)
for [displayname] in ([$row1], [$row2], [$row3])
) piv;