Hay algunas cosas que están mal con su consulta.
Primero, le falta una función agregada en su PIVOT. Necesita un agregado alrededor de propertyvalue
.
En segundo lugar, debe rodear el $row1
, etc con corchetes no comillas simples.
Tercero, usaría un alias diferente para el as pivot
Como resultado, el código será:
select *
from
(
select name, propertyvalue, displayname
from indexrows
) a
pivot
(
max(propertyvalue)
for [displayname] in ([$row1], [$row2], [$row3])
) piv;
Consulte SQL Fiddle con demostración