Há algumas coisas erradas com sua consulta.
Primeiro, está faltando uma função agregada em seu PIVOT. Você precisa de um agregado em torno de
propertyvalue
. Segundo, você precisa cercar o
$row1
, etc com colchetes e não aspas simples. Terceiro, eu usaria um alias diferente para o
as pivot
Como resultado o 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 with Demo