admin

SQL脚本到SSIS表达式

sql

我在下面的T-SQL查询行中尝试将其转换为Visual Studio SSIS表达式并转换为派生列任务。

所以tableA刚刚[Work item /Submission no#]列,但我需要他们像分成两列SubmissionCommon,并SubmissionNumber在下面情况时执行TableB中。

CASE 
    WHEN ISNUMERIC(SUBSTRING([Work item /Submission no#], 4, 2)) = 1
       THEN LEFT([Work item /Submission no#], 15)
       ELSE LEFT([Work item /Submission no#], 16)
END AS SubmissionCommon,
[Work item /Submission no#] AS SubmissionNumber

阅读 135

收藏
2021-06-07

共1个答案

admin

解决方案

我建议您首先添加一个派生列 (可以命名为IsNumeric,并使用以下表达式:

(DT_NUMERIC, 18, 2)SUBSTRING([Work item /Submission no#], 4, 2) == (DT_NUMERIC, 18, 2)SUBSTRING([Work item /Submission no#], 4, 2) ? 1 : 0

然后在“派生列变换编辑器”窗口底部附近,单击“配置错误输出”。您需要告诉SSIS 在错误时忽略故障

添加另一个派生列,使用以下表达式连接到第一个

REPLACENULL([IsNumeric],0) == 1 ? LEFT([Work item /Submission no#], 15) : LEFT([Work item /Submission no#], 16)

因为第一个可能会引发错误

有关详细信息,请遵循本文:

2021-06-07