だから私はこのようなテーブルを持っています
表1
 Quote Ref | Product A |  Product B  | Product C | Product D
-----------+-----------+-------------+-----------+-----------     
    12     |   222333  |  4748847478 |     0     |     0
Business Group以下の Table を使用して、これがどれに属しているかを調べる必要があります。
見積もりにこれらの製品がないため、マッピングするビジネス グループがないため、ゼロに等しい製品のフィールドには興味がありません。この見積もりでは、製品 A および B 列の値がゼロ以外であり、ビジネス グループにマップできます。( キーポイント )
表 2
Product Line |   Business Group 
Product A    |   Manfacturing 
Product B    | Tech Net
そこでUNPIVOT、表 1 のデータに注目します。
SELECT [QUOTE Ref], [Product Line], [Value]
FROM 
   (SELECT [QUOTE Ref], [Product A], [Product B], [Product C], [Product D]
FROM [Table1]) p
UNPIVOT
   ([Value] FOR [Product Line] 
   IN ([Product A], [Product B], [Product C], [Product D] )
)AS unpvt;
テーブル 1 の DATA は次のようになります
 Quote Ref | Product Line |   Value
-----------+--------------+------------
    12     |  Product A   |   222333
    12     |  Product B   | 4748847478
    12     |  Product C   |     0 
    12     |  Product D   |     0
問題は、40,000 行が 470 万行になることです。
これで、製品ラインの値がゼロに等しい、ピボットされていないテーブルの行は必要ないことがわかりました。unpivot クエリでこれらのエントリを削除するにはどうすればよいですか、または UNPIVOT を開始する前にベース テーブルに対してできることはありますか? 私のデータベースは、データベース内の約 20 の同様のテーブルと 6,000 万行を処理するのに十分な大きさではありません。