为什么SSIS条件性拆分包括不受条件影响的不需要的数据?

时间:2014-04-02 10:47:34

标签: ssis

我在SSIS Conditional Split中设置了以下条件,将所有无效地址发送到输出名称InvalidOutput

但是,我一直在使用Null Address1 column获取一些地址。我不知道为什么。

ISNULL(LEN(TRIM(Address1)) > 5) || 
ISNULL(LEN(TRIM(ZipCode)) == 5) || 
ISNULL(LEN(TRIM(City)) >= 5) || 
ISNULL(LEN(TRIM(Province)))

2 个答案:

答案 0 :(得分:2)

如果你的地址1为空,那么ISNULL(LEN(TRIM(地址1))将为真,但接着是真> 5将为真。 你需要单独处理空值;例如

ISNULL(Address1) || LEN(TRIM(Address1)) > 5

答案 1 :(得分:1)

就像Jayvee说的那样,你必须分开处理你的情况(在ISNULL功能和其他控制之间分开),你的情况会变成这样:

ISNULL(LEN(TRIM(Address1)) > 5) || 
ISNULL(LEN(TRIM(ZipCode)) == 5) || 
ISNULL(LEN(TRIM(City)) >= 5) || 
ISNULL(LEN(TRIM(Province)))

成为:

(ISNULL(Address1) || LEN(TRIM(Address1)) <= 5) || 
(ISNULL(ZipCode) || LEN(TRIM(ZipCode)) != 5) || 
(ISNULL(City) || LEN(TRIM(City)) < 5) || 
(ISNULL(Province) || LEN(TRIM(Province)) = 0 )