如何在SSIS派生列中移除含数字的字符串?清除PO Box记录
在SSIS派生列中移除PO Box记录的解决方案
嘿,这个需求用SSIS的派生列组件就能完美搞定,我给你一步步说清楚怎么操作:
核心思路
我们要做的就是识别出street name列中以**PO Box **(注意后面带个空格)开头的记录,把这些行的该列值清空,其他行保留原内容。
具体操作步骤
- 打开你的SSIS数据流任务,添加一个派生列组件,把数据源和这个组件连接起来。
- 双击打开派生列编辑器,在「派生列」下拉框里选择替换现有列,然后选中要处理的
street name列。 - 在「表达式」输入框里粘贴下面的表达式:
FINDSTRING([street name], "PO Box ", 1) == 1 ? "" : [street name]
表达式解释
FINDSTRING([street name], "PO Box ", 1):这个函数会查找"PO Box "在street name字段中第一次出现的位置,如果字段是从"PO Box "开头的,会返回数字1。- 三元运算符
? ::简单来说就是“满足条件就返回前者,不满足就返回后者”——这里就是如果是PO Box开头的记录,就返回空字符串"",否则保留原来的street name值。
用这个表达式处理你给出的测试数据,正好能得到你想要的结果:Queen Street和Main Street会原样保留,所有PO Box开头的行的street name列都会被清空。
内容的提问来源于stack exchange,提问作者datanewbie
相关产品推荐
相关产品推荐

