正規化されたテーブルにロードする必要がある非正規化されたテキストファイルを受け取りました。
非正規化されたテーブル:
CustomerID-カテゴリ-カテゴリ2-カテゴリ3-カテゴリ41
-A-B-C-D
これを正規化すると、次のようになります。
CustomerID-カテゴリ
1-A1
--B 1
--C 1
--D
これを実現するためのT-SQLステートメントを作成する最良の方法は何ですか(SQL Server 2008)?
正規化されたテーブルにロードする必要がある非正規化されたテキストファイルを受け取りました。
非正規化されたテーブル:
CustomerID-カテゴリ-カテゴリ2-カテゴリ3-カテゴリ41
-A-B-C-D
これを正規化すると、次のようになります。
CustomerID-カテゴリ
1-A1
--B 1
--C 1
--D
これを実現するためのT-SQLステートメントを作成する最良の方法は何ですか(SQL Server 2008)?
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;