试图理解下面的条件拆分表达式试图做什么:
=REPLACENULL(Employee_ID_WD,"0"),LEN(REPLACENULL(Employee_ID,“0”)
我是SSIS的新手,有人能解释一下吗?
发布于 2016-06-25 13:55:59
这是一个相对直截了当的表达方式,当你打破它。
简单地说(tl;dr),如果Employee_ID_WD为null或Employee_ID值不在Employee_ID_WD值中,则返回true。否则,返回false。
详细信息:
第一部分,ISNULL(Employee_ID_WD),检查Employee_ID_WD是否为null。如果是,表达式将立即返回true。原因就在于后面的||。这被称为逻辑或。如果您在许多编程中看到这一点,它表明程序员希望在||之前立即返回表达式(如果其中的任何部分是真的)。换句话说,如果在||之前有什么事情是真的,那么开始做我需要您做的事情,在这个表达式中检查任何东西都是没有意义的,我知道我需要知道什么才能继续前进。这被称为短路评估.维基。
如果Employee_ID_WD不是null,我们将继续到表达式的下一部分。
本部分:
(RIGHT(REPLACENULL(Employee_ID_WD,"0"),LEN(REPLACENULL(Employee_ID,"0")))正在抓取Employee_ID_WD右侧的字符。它要求的字符数是从运行在LEN上的Employee_ID (长度)函数返回的。另外,这两个部分都在检查它们传入的值是否为null,如REPLACENULL函数所示。如果它们为null,则返回值为0的字符串。这是在其中一个值为null的情况下完成的,这样您就可以得到一个真值比较。在这个表达式的所有部分中使用REPLACENULL函数可以使它更加健壮,这意味着与数据的不一致将被处理,而不会出现错误,或者最终给出一致的结果。
以上部分的结果与REPLACENULL(Employee_ID,"0")的结果进行了比较。如果上面的部分与此不相等(!=不等于),则表达式返回true。
https://stackoverflow.com/questions/38025485
复制相似问题