sql >> データベース >  >> RDS >> Sqlserver

SQLServer2000を使用したピボット

    これは2年前のことですが、受け入れられた回答が動的SQLの使用を要求し、最も賛成された回答が機能しないことは私を悩ませます:

    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
    

    あなたはしなければならない Group Byを使用しないと、結果がずれます。 Group Byを使用している場合は、Group By句にない各列を集計関数(またはサブクエリ)でラップする必要があります。



    1. SQL * Plus/SQLcl出力グリッドに垂直方向の境界線を追加する方法

    2. ODBCアプリケーションをMySQLに接続する

    3. WHERE条件の別のテーブルをJOINで使用したSQLDELETE

    4. いつテーブル値関数を使用しますか?