sql >> Database teknologi >  >> RDS >> Sqlserver

Transponer nogle kolonner til rækker ved hjælp af pivot med SQL

Der er et par ting, der er galt med din forespørgsel.

For det første mangler du en samlet funktion på din PIVOT. Du har brug for et aggregat omkring propertyvalue .

For det andet skal du omgive $row1 osv. med firkantede parenteser ikke enkelte anførselstegn.

For det tredje ville jeg bruge et andet alias for as pivot

Som et resultat vil koden være:

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

Se SQL Fiddle with Demo



  1. Den parametriserede forespørgsel ..... forventer parameteren '@units', som ikke blev leveret

  2. Udfør flere sql-sletteforespørgsler i mysql til php

  3. NodeJS/Knex Opretter Json-svar

  4. MySQL-antal i samme tabel inklusive nul-tælleværdier