3

我正在使用 SSIS 将 excel 数据移动到临时 sql 服务器表并从那里移动到目标表。所以我的临时表只包含 varchar 列 - 我的目标表需要某些列的货币值。在我的临时表中,原始的 excel 列有一个公式,但在某些行上留下了一个空单元格,该单元格由临时表和一个空单元格表示。但是,当我将其中一列转换为货币时,这些原本空白的单元格在目标列中变为0,00 。

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

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

谢谢你。

4

1 回答 1

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 = '' 

ETC

这将更新所有

于 2012-09-07T07:11:05.760 回答