Ada beberapa hal yang salah dengan kueri Anda.
Pertama, Anda kehilangan fungsi agregat pada PIVOT Anda. Anda memerlukan agregat di sekitar propertyvalue
.
Kedua, Anda perlu mengapit $row1
, dll dengan tanda kurung siku bukan tanda kutip tunggal.
Ketiga, saya akan menggunakan alias yang berbeda untuk as pivot
Hasilnya kodenya akan menjadi:
select *
from
(
select name, propertyvalue, displayname
from indexrows
) a
pivot
(
max(propertyvalue)
for [displayname] in ([$row1], [$row2], [$row3])
) piv;
Lihat SQL Fiddle dengan Demo