我有一个完全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}