sql >> Database >  >> RDS >> Sqlserver

Transponeer enkele kolommen naar rijen met behulp van pivot met SQL

Er zijn een paar dingen mis met uw vraag.

Ten eerste mis je een geaggregeerde functie op je PIVOT. U heeft een aggregaat nodig rond propertyvalue .

Ten tweede moet je de $row1 . omringen , etc. met vierkante haken, geen enkele aanhalingstekens.

Ten derde zou ik een andere alias gebruiken voor de as pivot

Als resultaat wordt de code:

select * 
from 
(
  select name, propertyvalue, displayname
  from indexrows
) a
pivot
(
  max(propertyvalue)
  for [displayname] in ([$row1], [$row2], [$row3])
) piv;

Zie SQL Fiddle met demo



  1. Alias ​​gebruiken in query, waardoor de opdracht niet correct is beëindigd

  2. Codeigniter ActiveRecord:doe mee met backticking

  3. docker postgres pgadmin lokale verbinding

  4. Scheid woorden per groep voor elke rij in SQL