SSIS 派生列表达式,用于根据单独的 OLE DB 源中另一个字段的值显示空白



我有两个来自不同服务器的不同 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 表达式)

相关内容

最新更新