读取列中的负数

时间:2018-06-08 15:49:48

标签: ssis

我使用SSIS将好数据与不可用日期分开。为了做到这一点,我使用派生列,脚本任务和条件分割,我分配了一些条件。我需要应用的一个条件是,一列中的数字都不能为负数。我猜测解决这个问题的最佳方法是使用条件拆分,但我无法让它工作。我是SSIS的新手,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

你有像

这样的表达式
[MyCaseSensitiveColumnName] < 0

然后将输出路径命名为BadData_NegativeValue

来自评论

  

这就是我以前做的,但是我收到的错误是说数据类型&#34; DT_WSTR&#34;和&#34; DT_I4&#34;与二元运算符&#34;&gt;&#34;

不兼容

该错误消息表明您正在尝试比较unicode字符串(DT_WSTR)和整数(DT_I4),并且表达式语言不允许它。

要解决此类型不兼容问题,您需要先将MyCaseSensitiveColumnName的值从DT_WSTR转换为整数。

我可能会在我的数据流中添加一个派生列组件,并创建一个名为MyCaseSensitiveColumnNameAsInteger的新列,其表达式为

(DT_I4) [MyCaseSensitiveColumnName]

现在,根据源数据的质量,可能是危险的。我不知道你为什么要把数字数据作为字符串拉出来。如果数据集中可能存在非整数,那么我们需要在进行转换之前进行检查。如果该数据集中存在NULL,那么这些也可能导致问题。

这将导致我们的条件分裂检查变为

[MyCaseSensitiveColumnNameAsInteger] < 0