Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Transponha algumas colunas para linhas usando pivô com SQL


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