sql >> Database >  >> RDS >> Sqlserver

Draaien met SQL Server 2000

Ik realiseer me dat dit twee jaar oud is, maar het irriteert me dat het geaccepteerde antwoord vraagt ​​om het gebruik van dynamische SQL en het meest geüpdatete antwoord niet zal werken:

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

Je moet gebruik een Group By of je krijgt een verspringend resultaat. Als u een Group By gebruikt, moet u elke kolom die niet in de Group By-clausule staat, in een aggregatiefunctie (of een subquery) opnemen.



  1. Scalaire UDF-inlining in SQL Server 2019

  2. Hoe duplicaten te verwijderen uit een door komma's gescheiden lijst op regex in Oracle, maar ik wil geen dubbele waarden?

  3. 13 best practices voor SQL Server-beveiliging

  4. Kolomalias begrijpen in Select Query in SQL Server - SQL Server / TSQL-zelfstudieonderdeel 115