SSIS 空值问题
Posted
技术标签:
【中文标题】SSIS 空值问题【英文标题】:SSIS Null Value Questions 【发布时间】:2009-07-09 19:30:24 【问题描述】:我有一个包含 5 个字符串列的表,所有列都可以是 NULL。从该表中读取数据后,我想将任何空值转换为空字符串。原因是我需要将这些列与同一架构的另一个表中的列进行比较(使用条件拆分),空值会导致比较结果为 NULL。
SSIS 中是否有任何功能可以让我将 NULL 转换为空字符串,或者根本不必处理 NULL?
【问题讨论】:
【参考方案1】:正确的语法是 (ISNULL(column)?"":column) 没有 IIF
【讨论】:
【参考方案2】:您可以使用派生列转换。我现在没有打开 VS,但你会使用类似的东西:
IIF(ISNULL(column)?"":column)
作为表达式,并让它替换原始列。
更新:如下所示,IIF
应该被删除。
ISNULL(column)?"":column
【讨论】:
【参考方案3】:在您的查询中按如下方式包装您的列...
SELECT ISNULL(col1,'') AS [col1]
,ISNULL(col2,'') AS [col2]
,ISNULL(col3,'') AS [col3]
,ISNULL(col4,'') AS [col4]
,ISNULL(col5,'') AS [col5]
【讨论】:
这是我作为 SQL DBA/DB 开发人员更喜欢的版本,如果您要为输入指定查询,那么在列周围添加 ISNULL 非常容易,而且您不需要这样做不必在 SSIS 中进行任何额外的转换。如果您正在开发许多 SSIS 包,其中的表有时允许 NULL,有时不允许,您还可以创建一个脚本来创建带有 ISNULL 函数的 SELECT 语句,仅用于可为空的列。【参考方案4】:在您的查询中,您可以这样使用
CASE Tablename.ColumnName WHEN NULL THEN ' ' ELSE Tablename.ColumnName END AS 'Column Name'
【讨论】:
以上是关于SSIS 空值问题的主要内容,如果未能解决你的问题,请参考以下文章