我使用SSIS移动Excel数据到一个临时SQL Server表,并从那里到目标表。 所以,我的临时表只包括VARCHAR列的 - 我的目标表预计货币价值的一些列。 在我的临时表的原始Excel列有一个公式,但是,这是由临时表与空单元格,以及代表的一些行留下一个空单元格 。 但是,当我投这列金钱的一个原本这些空白单元格成为目标列0,00。
当然,这不是我想要的东西,所以我怎么能在那里得到NULL值? 记住,这是可能的通缉0,00在这些列中的一个出现了。
我想我需要修改我的临时表转空单元格设置为NULL。 我能做到这一点从SSIS包内,或者是有,我可以使用表格设置?
谢谢。
对于现有的数据,你可以写一个简单的脚本更新数据为NULL,其中空。
UPDATE YourTable SET Column = NULL WHERE Column = ''
对于刀片可以使用NULLIF函数,如果空插入空
INSERT INTO YourTable (yourColumn)
SELECT NULLIF(sourceColum, '') FROM SourceTable
编辑:对于多列的更新需要这两个解决方案结合,写类似:
UPDATE YourTable SET
Column1 = NULLIF(Column1, '')
, Column2 = NULLIF(Column2, '')
WHERE Column1 = '' OR Column2 = ''
等等
这将更新所有