Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果SSIS中的值为NULL,则条件拆分失败_Ssis - Fatal编程技术网

如果SSIS中的值为NULL,则条件拆分失败

如果SSIS中的值为NULL,则条件拆分失败,ssis,Ssis,我正在根据以下规则将完全外部联接的结果传递给条件拆分和筛选记录。基本上,这两个表具有相同的模式,Primarykey值相同 a. If Primary key of Source is NULL b. If Primary Key of Destination is NULL c. If Source and Destination key matches. 它对(a)和(b)有效,但对(c)无效 并抛出一个异常,该异常条件在预期为布尔值的情况下计算为NULL。我怎样才能做到这一点 条件拆分

我正在根据以下规则将完全外部联接的结果传递给条件拆分和筛选记录。基本上,这两个表具有相同的模式,Primarykey值相同

a. If Primary key of Source is NULL
b. If Primary Key of Destination is NULL
c. If Source and Destination key matches. 
它对(a)和(b)有效,但对(c)无效

并抛出一个异常,该异常条件在预期为布尔值的情况下计算为NULL。我怎样才能做到这一点


条件拆分从合并联接获取输入,它是一个完整的外部联接,因为这里需要完整的外部联接结果

在比较值之前,您的第三个条件应以一个ISNULL检查开始。例如:

!ISNULL(Source.Id) && !ISNULL(Destination.Id) && Source.Id == Destination.Id
您需要处理条件中可能为NULL的每一列。 由于您正在比较Id,另一个选项是:

(ISNULL(Source.Id) ? 0 : Source.Id) == (ISNULL(Destination.Id) ? 0 : Destination.Id)

如果比较字符串,可以将零替换为空格。

或者可以使用以下语法:

REPLACENULL(Source.Id,0) == REPLACENULL(Destination.Id,0)

在条件拆分中,三个点是独立的条件,还是所有三个点都是同一条件的一部分?有三个独立的条件。第一个检查ISNULL(Source.Id),第二个检查ISNULL(Destination.Id),第三个条件是Source.Id==Destination.Id
REPLACENULL(Source.Id,0) == REPLACENULL(Destination.Id,0)