我们没有coalesce功能.在ISNULL我们的表达式语言从同一个名字的TSQL功能有很大的不同.
SSIS表达式语言ISNULL评估操作数,如果为空值则返回true,否则返回false.
相反,为了执行类似于合并的操作,我们需要使用ISNULL运算符和三元函数?:Read it as Test : True condition : False condition.假设MyColumn是unicode字符串类型,这将确定MyColumn是否为false.如果是,则会对字符串Secondary Condition进行硬编码.否则,它将返回MyColumn的值.这相当于tsql的`coalesce(MyColumn,'Secondary Condition')
ISNULL(MyColumn) ? "Secondary Condition" : MyColumn
Run Code Online (Sandbox Code Playgroud)
Coalesce允许多个搜索条件,因此coalesce(Column0, Column1, Column2)可以将三元运算符嵌套在一起
ISNULL(Column0) ? (ISNULL(Column1) ? Column2: Column1) : Column0
Run Code Online (Sandbox Code Playgroud)
这变得很难看,但概念保持不变 - 继续嵌套,直到你匹配了你需要检查的所有级别.