如何将SQL案例语句转换为SSIS表达语言



我有一个完全qulified的文件名(带路径的文件名)进入SSIS加载中的登台表。文件名是,例如

C:SSISscriptsworkinputtom_22082017-093346-906838.csv
C:SSISscriptsworkinputjim_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:使用派生的column创建一个新列,其中包含来自文件名的3个char名称(汤姆,吉姆等)。您正在使用的SQL函数(substring,upper等)在SSIS脚本编辑器中具有等效函数。

步骤2:使用另一个派生的列来生成一个新列,该列将上述列(Tom,Jim等)转换为全名(Tommy,Jimmy)。使用三元运算符(请参阅下面的标签ALLEMAN答案)。

在SSIS表达式中您可以使用嵌套的三元运算符。

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

相关内容

  • 没有找到相关文章

最新更新