SSIS:将派生列表达式中的空值替换为 0

SSIS: Replace Null Value to 0 in Derived Column expression

我正在尝试将 excel 文件的空值替换为 0,但出现错误 "Data type DT_14 and DT_WSTR are incompatible for binary operator "==”。 我正在使用派生列,到目前为止这是我的表达 20150921 ==“”? 0 : 20150928 我也试过这个,ISNULL(20150921)? 0 : 20150921 但传递到目的地的数据是 20150921 而不是它的实际值。

顺便说一句,20150921是字符串[DT_STR]类型。

另外,我的20150928栏有一个场景变成了F11、F12等等。这是为什么?

这里是新手! 对不起。

您正在将数字 (20150921) 与字符串 ("") 进行比较,这就是您收到错误数据类型 DT_14 和 DT_WSTR 与二元运算符 "==" 不兼容的原因。不过你的表达几乎是正确的,你只需要比较列的名称,而不是列的值。

示例: 您有一个 excel 文件,其列 "Column1" 包含数字 (20150921) 和一些空值。 SSIS 将每个 Excel 列视为一个字符串,因此您必须通过表达式将其转换:Column1 == "" ? 0 : (DT_I4)Column1。这意味着每个空值都将被转换为 0,否则它将被转换为整数(四字节整数)。您还可以使用数据类型 DT_I8.

编辑:如果您的列名为 20150921,请尝试改用 [20150921]。