SQL Server 2000 でのデータのピボット: 詳細な説明
SQL Server 2000 は、ユーザーがデータを変換できるようにするピボットと呼ばれる強力な機能を提供します。行ベースの形式から列ベースの形式へ。これは、複数の列にわたるデータを要約したり、データのマトリックス ビューを作成したりする必要があるシナリオに役立ちます。
問題ステートメント:
ある特定のインスタンスでは、ユーザーには 2 つのテーブルがあります:
ユーザーは MetaValue 列をピボットする結果セットを必要としますMetaKey 列に基づいた Product Meta テーブルから。Products テーブルの ProductId 列と Name 列が行として使用されます。 headers.
最適な解決策:
この変換を実現するには、次の 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 句に含まれていない各列は、集計関数 (この場合は MIN()) でラップする必要があります。
以上がSQL Server 2000 でデータをピボットして行ベースのデータを列ベースの形式に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。