0

我在名称列中有 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
4

2 回答 2

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 数据类型

祝你好运 :)

于 2013-09-19T15:02:45.677 回答
1

您可以使用带有 SSIS 表达式的派生列转换来将嵌入的“JR”替换为尾随的“JR”:

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

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

有关详细信息,请参阅SSIS 函数REPLACEFINDSTRING连接运算符条件运算符 (?:)

于 2013-09-19T15:16:28.460 回答