MS SQL Server 2012
I have a table called indexrows
name displayname propertyvalue
abc $row1 agg
abc $row2
There are a few things are wrong with your query.
First, you are missing an aggregate function on your PIVOT. You need an aggregate around propertyvalue
.
Second, you need to surround the $row1
, etc with square brackets not single quotes.
Third, I would use a different alias for the as pivot
As a result the code will be:
select *
from
(
select name, propertyvalue, displayname
from indexrows
) a
pivot
(
max(propertyvalue)
for [displayname] in ([$row1], [$row2], [$row3])
) piv;
See SQL Fiddle with Demo