SSIS转换错误

时间:2013-09-19 14:20:41

标签: ssis

我在名称列中有JR或SR的行我希望它们在最后我可以删除特殊字符但在此步骤中混淆

 NUM           VEH              NAME                 NAME_Clean
 017            1       CLARK, jr WILLIAM            CLARK WILLIAM JR
 037            2       DESORMEAUX, JR. MICHELLE     DESORMEAUX MICHELLE JR
 043            1       FALCON, JENNIFER,jr          FALCON JENNIFER JR
 073            2       WINTERS, ALLEN               WINTERS ALLEN

2 个答案:

答案 0 :(得分:2)

使用派生列转换并基于NAME列创建新的派生列,其中包含以下内容:

(FINDSTRING([NAME], “JR”,1)== 1个|| FINDSTRING([NAME], “JR”,1)== 1)?REPLACE(REPLACE(REPLACE(REPLACE([NAME], “,”,“”),“。”,“”),“JR”,“”),“jr”,“”)+“JR”:REPLACE(REPLACE([NAME],“,”,“”) ), “”, “”)

请注意,第一个表达式FINDSTRING仅适用于DT_WSTR数据类型

祝你好运:)

答案 1 :(得分:1)

您可以使用带有SSIS表达式的Derived Column Transformation将嵌入的“JR”替换为尾随的“JR”:

FINDSTRING(NAME, " JR ") > 0 ? REPLACE(NAME, " JR ", "") + " JR" : NAME

如果你想为几个不同的字符串执行此操作,可以嵌套表达式,或者一个接一个地使用多个转换。

有关详细信息,请参阅SSIS FunctionsREPLACEFINDSTRINGConcatenate operatorConditional operator (?:)