SSIS REPLACENULL 函数是一个 NULL 函数,它会将第一个表达式中的 NULL 值替换为第二个参数中的表达式。这对于用默认值替换大量 NULL 值非常有用。本文介绍了如何使用 REPLACENULL 函数,并展示了用默认表达式替换列中 NULL 值的语法。
REPLACENULL(<<Actual_expression>>, <<Rep_expression>>)
Actual_expression:将搜索 NULL 值所在的列名。
Rep_expression:用于替换 Actual_expression 中 NULL 值的表达式。
为了演示 REPLACENULL 函数,我们使用了下面列出的 Employee 表,其中包含 15 条记录。请参考 SSIS 中的 Union All Transformation、Derived Column Transformation、Built-in Functions 以及 SQL Server 文章。

SSIS REPLACENULL 函数
要替换 NULL 值,请添加一个数据流任务 (Data Flow Task),然后双击它进入数据流区域。接下来,添加 OLE DB 源以从上述 SQL 数据库表中读取数据。请将 OLE DB 源连接到派生列转换 (Derived Column Transformation),以编写 REPLACENULL 函数表达式并创建新列。

接下来,双击它以打开派生列转换编辑器 (Derived Column Transformation Editor)。将 SSIS REPLACENULL 函数拖放到“表达式” (Expression) 下的单元格中,并将第一个表达式替换为 Name,第二个表达式替换为 default text。您可以手动删除整个表达式,也可以通过拖放 Name 列来自动替换它。
下面的表达式将把 Name 列中的 NULL 值替换为 Hello,Education 列中的 NULL 值替换为 Self,Sales 列中的 NULL 值替换为 999。
REPLACENULL( [Name], "Hello" )
REPLACENULL( [Education], "Self" )
REPLACENULL( [Occupation], "Coding" )
REPLACENULL( [YearlyIncome], 100000 )
REPLACENULL( [Sales], 999 )

单击“确定”关闭编辑器窗口。拖放 Union All 转换并将派生列连接到它。接下来,右键单击连接节点并选择“启用数据查看器”。
请运行 SSIS REPLACENULL 函数包,以在 Name、Education、Occupation、YearlyIncome 和 Sales 中查看替换后的 NULL 值。
