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;