5

正規化されたテーブルにロードする必要がある非正規化されたテキストファイルを受け取りました。

非正規化されたテーブル:

CustomerID-カテゴリ-カテゴリ2-カテゴリ3-カテゴリ41
-A-B-C-D

これを正規化すると、次のようになります。

CustomerID-カテゴリ
1-A1
--B 1
--C 1
--D

これを実現するためのT-SQLステートメントを作成する最良の方法は何ですか(SQL Server 2008)?

4

1 に答える 1

6

UNPIVOT次のキーワードを使用します: http://technet.microsoft.com/en-us/library/ms177410.aspx

当然、[File] をある種の OpenRowSet クエリに置き換えるか、インポート/エクスポート ウィザードを使用してデータを一時テーブルに取得します。

SELECT CustomerId, Category
FROM 
(
   SELECT CustomerId, Category, Category2, Category3, Category4
   FROM [File]

) tblDenormalized
UNPIVOT
(
   Category FOR Column IN 
   (Category, Category2, Category3, Category4)
) AS unpivot;
于 2010-08-09T17:26:39.193 に答える