sql >> Databasteknik >  >> RDS >> Sqlserver

Pivot med SQL Server 2000

Jag inser att det här är två år gammalt, men det stör mig att det accepterade svaret kräver att du använder dynamisk SQL och det svar som röstas mest upp inte fungerar:

Select P.ProductId, P.Name
    , Min( Case When PM.MetaKey = 'A' Then PM.MetaValue End ) As A
    , Min( Case When PM.MetaKey = 'B' Then PM.MetaValue End ) As B
    , Min( Case When PM.MetaKey = 'C' Then PM.MetaValue End ) As C
From Products As P
        Join ProductMeta As PM
            On PM.ProductId = P.ProductId
Group By P.ProductId, P.Name

Du måste använd en Group By eller så får du ett förskjutet resultat. Om du använder en Group By måste du linda varje kolumn som inte finns i Group By-satsen i en aggregerad funktion (eller en underfråga).



  1. Jag får ett Ett försök gjordes att ladda ett program med ett felaktigt formatfel på ett SQL Server-replikeringsprojekt

  2. Hur använder man pg_stat_activity?

  3. Använda ADO asynkront i Microsoft Access för att snabba upp formulär

  4. Importera flera CSV-filer till SQL Server från en mapp