SQL-Server用NULL值替换空单元格

时间:2012-09-07 07:01:31

标签: sql-server excel ssis null

我正在使用SSIS将excel数据移动到临时sql server表并从那里移动到目标表。 所以我的临时表只包含varchar列 - 我的目标表需要一些列的货币值。在我的临时表中,原始的excel列具有公式,但在某些行上留下空单元格,这些行由临时表表示,并且还有一个空单元格。但是,当我将这些列中的一列投入资金时,这些原始空白单元格在目标列中变为 0,00

当然这不是我想要的,那么如何才能获得 NULL 值呢?请记住,在这些列之一中可能会出现想要的0,00。

我想我需要编辑临时表以将空单元格变为NULL。我可以在SSIS包中进行此操作,还是可以使用我可以使用的表的设置?

谢谢。

1 个答案:

答案 0 :(得分:8)

对于现有数据,您可以编写一个简单的脚本,将数据更新为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 = '' 

这将更新所有