1

SSIS ETL を SQL Server コードに変換しようとしています。古い ETl は 2005 年に作成され、新しい T-SQL コードは 2012 年に作成されています。次のデータが SSIS ETL で変換されています。

ソース テーブル: AssetName、MoodyRating、SPRating、FitchRating

ソース データ:

FirstAsset, 1 , 2 , 3
SecondAsset, 4, 5, 6

それは、次の方向に向けられていません。

ターゲット テーブル: AssetName、RatingSouce、RatingValue

対象データ:

FirstAsset, Moody, 1
FirstAsset, SP, 2
FirstAsset, Fitch, 3
SecondAsset, Moody, 4
SecondAsset, SP, 5
SecondAsset, Fitch, 6

UNPIVOT コマンドを使用して SQL でこれを実行できると思いますが、アンピボット プロセスの一部として RatingSource を挿入する例が見つかりません。どんな助けでも大歓迎です。

4

1 に答える 1

4

関数を使用して、列名UNPIVOTの を置き換えるだけです。rating

select AssetName,
  replace(RatingSouce, 'Rating', '') RatingSouce,
  RatingValue
from yourtable
unpivot
(
  RatingValue
  for RatingSouce in ([MoodyRating], [SPRating], [FitchRating])
) unpiv

デモで SQL Fiddle を参照してください

于 2013-02-26T16:33:51.200 に答える