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

Pivot ved hjælp af SQL Server 2000

Jeg er klar over, at dette er to år gammelt, men det irriterer mig, at det accepterede svar kræver brug af dynamisk SQL, og det svar, der har stemt mest op, vil ikke virke:

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 skal brug en Group By, ellers får du et forskudt resultat. Hvis du bruger en Group By, skal du pakke hver kolonne, der ikke er i Group By-udtrykket, i en aggregeret funktion (eller en underforespørgsel).



  1. Access dataverse connector er nu tilgængelig for test

  2. Postgres er den fedeste database – Årsag #2:Licensen

  3. Forvandling af en kommasepareret streng til individuelle rækker

  4. uWSGI, Flask, sqlalchemy og postgres:SSL-fejl:dekryptering mislykkedes eller dårlig optagelse mac