sql >> Databáze >  >> RDS >> Sqlserver

Transponujte některé sloupce do řádků pomocí pivotu s SQL

Ve vašem dotazu je několik věcí špatně.

Za prvé, na vašem PIVOTu chybí agregační funkce. Potřebujete agregaci kolem propertyvalue .

Za druhé, musíte obklopit $row1 , atd. s hranatými závorkami, nikoli jednoduchými uvozovkami.

Za třetí, pro as pivot bych použil jiný alias

V důsledku toho bude kód:

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

Viz SQL Fiddle s ukázkou



  1. Jak zjistit čínský znak v MySQL?

  2. Vysvětlení příkazu PostgreSQL VALUES

  3. Více CTE v jednom dotazu

  4. Datový typ MySql FLOAT a problémy s více než 7místným měřítkem