我有两个来自不同服务器的不同 OLE DB 源合并到一个合并联接中。我认为我需要使用派生列根据另一个 OLE DB 源中的字段值将其中一个 OLE DB 源中的一个字段的值设置为空。 例如 OLE DB SOURCE 1 是人口统计源,其中包括地址字段(街道地址、城市、州、邮政编码)OLE DB 源 2 的字段带有是否发送邮件的指示器,如果此字段有"N",则不要发送邮件。因此,如果 OLE DB SOURCE 2 中的do_not_send_mail中有"N",我需要我的输出文件不显示地址。 我在想派生列是在合并联接后执行此操作的最佳方式,但不确定如何执行表达式。
我还没有尝试派生列,因为我不确定这是否是完成此操作的最佳方法。
我的预期结果是,如果 OLE DB SOURCE 2 的do_not_mail列中有"N",则地址信息不会显示在文件中。
您需要添加一个替换原始地址列的派生列,并使用条件表达式,如下所示(每列一个派生列):
假设所有列数据类型都DT_WSTR且长度 = 50
街道地址
[do_not_send_mail] == "N" ? NULL(DT_WSTR,50) : [street address]
城市
[do_not_send_mail] == "N" ? NULL(DT_WSTR,50) : [city]
州
[do_not_send_mail] == "N" ? NULL(DT_WSTR,50) : [state]
.zip
[do_not_send_mail] == "N" ? NULL(DT_WSTR,50) : [zip]
附加信息
- 派生列转换
- ? : (条件) (SSIS 表达式)
- NULL (SSIS 表达式)