2017-10-03 25 views
0

私は、SSISロードのステージングテーブルに入ってきた完全にqulifiedなファイル名(パスを含むファイル名)を持っています。ファイル名は例えばです。SQL CaseステートメントをSSIS式言語に変換する方法?

C:\SSIS\scripts\work\input\tom_22082017-093346-906838.csv 
C:\SSIS\scripts\work\input\jim_22082017-093346-906838.csv 

これからファイル名のみを抽出し、SSIS派生列変換のケースロジックを使用して新しい列を生成します。純粋なSQLを使用すると、次のようになります。

SELECT CASE 
     WHEN SUBSTRING(UPPER(RIGHT(filename, CHARINDEX('\', REVERSE(filename)) - 1)), 1, 3) = 'TOM' THEN 'TOMMY' 
     WHEN SUBSTRING(UPPER(RIGHT(filename, CHARINDEX('\', REVERSE(filename)) - 1)), 1, 3) = 'JIM' THEN 'JIMMY' 
    END AS PERSON 
    FROM mystagingtable 

このロジックをSSISに変換する方法派生列変換の式言語?

答えて

1

SSIS式では、ネストされた3項演算子を使用できます。

{Condition} ? {Return value when true} : {Return value when false} 
0

ステップ1:ファイル名から3char名(トム、ジムなど)を含む新しい列を作成するDerivedColumnを使用し 。使用しているSQL関数(部分文字列、上位など)は、SSISスクリプトエディタ内で同等の機能を持っています。

手順2: 別のDerivedColumnを使用して、上記の列(tom、jimなど)をフルネーム(tommy、jimmy)に変換する新しい列を生成します。三項演算子を使用してください(下記のTab Allemanの答えを参照してください)。

関連する問題