Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Pivot przy użyciu SQL Server 2000

Zdaję sobie sprawę, że ma to dwa lata, ale denerwuje mnie, że zaakceptowana odpowiedź wymaga użycia dynamicznego SQL, a odpowiedź, która uzyskała najwięcej głosów, nie zadziała:

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

musisz użyj opcji Grupuj według, w przeciwnym razie uzyskasz rozłożony wynik. Jeśli używasz Grupuj według, musisz owinąć każdą kolumnę, która nie znajduje się w klauzuli Grupuj według, funkcją agregującą (lub podzapytaniem).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kolumny daty w SQL-Server (MSSQL-JDBC 3.0) działające w środowisku Java 1.7.0 pobrane jako 2 dni w przeszłości

  2. Różnica między lewym i prawym złączeniem w SQL Server

  3. Znaleźć prawdziwą nazwę kolumny aliasu używanego w widoku?

  4. Pobierz obraz z bazy danych w asp.net

  5. Automatyczne tworzenie zadania SQL Server