ホームページ > データベース > mysql チュートリアル > 動的 SQL を使用せずに SQL Server 2000 でデータをピボットする方法

動的 SQL を使用せずに SQL Server 2000 でデータをピボットする方法

Patricia Arquette
リリース: 2025-01-03 00:08:38
オリジナル
638 人が閲覧しました

How to Pivot Data in SQL Server 2000 Without Dynamic SQL?

SQL Server 2000 でデータをピボットする方法

SQL Server 2000 を使用してデータをよりピボット構造の形式に変換するという課題に直面する?動的 SQL と非効率的なアプローチの落とし穴を回避し、データ操作の精度と効率を確保するソリューションを詳しく見てみましょう。

問題を理解する

次の 2 つがあると想像してください。テーブル: 製品情報を含む製品と、各製品の追加メタデータを提供する製品メタ。目標は、データをピボットして表形式で表示し、製品名と対応するメタデータ値を表示する結果セットを作成することです。

解決策

この変換を実現するには、GROUP BY 内の集計関数と組み合わせて CASE 式を利用します。句:

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
ログイン後にコピー

説明

  • CASE 式は、Product Meta テーブルの MetaKey 列を評価し、キーが指定されたものと一致する場合は、対応する MetaValue を返します。条件 (A、B、または C)。
  • MIN 集計関数が各 CASE 式に適用されて、次のことが保証されます。各製品 ID の最小値のみが取得されます。
  • GROUP BY 句は、ProductId 列と Name 列ごとに結果をグループ化し、集計された値が正しい製品に関連付けられるようにします。

このアプローチを利用すると、SQL Server 2000 でデータを効果的にピボットすることができ、動的 SQL の制限を回避し、変換に適合するクリーンで使用可能な結果セットを生成できます。要件。

以上が動的 SQL を使用せずに SQL Server 2000 でデータをピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート