Има няколко неща, които не са наред с вашата заявка.
Първо, липсва ви агрегатна функция на вашия PIVOT. Имате нужда от агрегат около propertyvalue
.
Второ, трябва да оградите $row1
, и т.н. с квадратни скоби, а не с единични кавички.
Трето, бих използвал различен псевдоним за as pivot
В резултат на това кодът ще бъде:
select *
from
(
select name, propertyvalue, displayname
from indexrows
) a
pivot
(
max(propertyvalue)
for [displayname] in ([$row1], [$row2], [$row3])
) piv;
Вижте SQL Fiddle с демонстрация