Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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
使用派生列转换处理空数据的SQL SSI。。选择?_Sql_Sql Server 2008_Tsql_Ssis_Data Warehouse - Fatal编程技术网

使用派生列转换处理空数据的SQL SSI。。选择?

使用派生列转换处理空数据的SQL SSI。。选择?,sql,sql-server-2008,tsql,ssis,data-warehouse,Sql,Sql Server 2008,Tsql,Ssis,Data Warehouse,我有一个包含200多列的源表,我将其放入SSI中,并使用“OLEDB source”组件将数据输入,然后将流映射到派生列转换,以处理空数值/日期/文本数据,方法是将其替换为空值 目前,我正在派生列中设置以下表达式: ISNULL([EMPLOYEE ID]) ? "" : [EMPLOYEE ID] ISNULL([EMPLOYEE FNAME]) ? "" : [EMPLOYEE FNAME] 等等 因为我有200多列,所以我必须在派生转换中执行200次,有没有更好的方法使用SSI来处理这

我有一个包含200多列的源表,我将其放入SSI中,并使用“OLEDB source”组件将数据输入,然后将流映射到派生列转换,以处理空数值/日期/文本数据,方法是将其替换为空值

目前,我正在派生列中设置以下表达式:

ISNULL([EMPLOYEE ID]) ? "" : [EMPLOYEE ID]

ISNULL([EMPLOYEE FNAME]) ? "" : [EMPLOYEE FNAME]
等等

因为我有200多列,所以我必须在派生转换中执行200次,有没有更好的方法使用SSI来处理这个问题


在Windows 2008R2上运行SQL Server 2008标准。

在SSIS中,您可以使用派生列/脚本转换[作为转换]并编写代码以将空值转换为空。SSIS中没有其他替代方案。SSI将创建缓冲区来处理计算。它会降低SSIS包的速度。我的建议是在SQL查询中尝试使用IsNULL函数或CuleSeCe函数,并将NULL转换为空白,这样所有的转换都会发生在服务器端本身。
Select ISNULL(EmployeeId,'')


希望这有帮助。

我最终坚持SSIS的派生列转换,插入每一列并检查ISNULL([EMPLOYEE FNAME])?“”:[EMPLOYEE FNAME]因为这是我最熟悉的方法。

同意-通常最好在数据库服务器上处理null之类的内容,除非SSIS机器比DB服务器强大得多(通常不是这样)。还值得一提的是,您可以在数据库的视图中执行此操作,这可能比将查询嵌入SSIS包本身更方便。
Select COALESCE(EmployeeId,'')