SSIS派生列 - 将多列替换为一列

时间:2017-06-14 04:33:13

标签: sql-server ssis etl

要求是 源表有30列,总长度为700字节。 我需要将30列分成7列 如     第1栏     第二栏     第3栏     将第4列与第27列组合为第4列     第28列为第5列     第29列为第6列     第30列为第7列。

我尝试在ssis中使用派生列。 在表达式中,我已将所有列组合在一起,但在替换时我无法替换所有字段。

在SSIS中还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

只需将Source类型更改为SQL Command并使用类似的查询组合列:(SQL Server示例)

SELECT ISNULL([Column1],'') + ISNULL([Column2],'') + ISNULL([Column3],'') + 
ISNULL([Column4],'') + ISNULL([Column5],'') + ISNULL([Column6],'') + 
ISNULL([Column7],'') AS [FirstColumn] , 
ISNULL([Column8],'') + ISNULL([Column9],'') + .... AS [SecondColumn] ,
 ...

FROM [SourceTable]

注意:我使用ISNULL函数,因为当连接一个值为NULL时,整个值将为NULL,但请注意使用函数可能会降低查询执行速度性能