sql >> Base de Datos >  >> RDS >> Sqlserver

Transponer algunas columnas a filas usando pivote con SQL

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