首页 > 解决方案 > 将空值传递为零

问题描述

我正在制作一个从 csv 文件中吸收值的表格。我有几个数字列,将文本转换为数字时,插入值时出现错误。

我在 csv 中有 NULL 值。有没有办法从数据库中删除它们。我手动删除它们。
空->'0'。

我试过默认。ISNULL,不知道建表的时候能不能用。我想尝试的是不再打开 csv。这样我就明白了。并且在导入数据库时​​,NULL 变为零。

我收到 csv 中的文件。我打开它们,删除 NULL 值。 数据截图

   7939102772 2401679 108271 0 3000062862 174529 8129 
   7939102772 2401679 108271 0 3000062862 174529 8129 
   7939102772 2401679 108271 0 3000062862 174529 8129 
1. NULL NULL NULL NULL NULL NULL NULL 

我使用:

BULK INSERT [dbo] 
FROM 'C:csv' 
WITH (FIRSTROW = 2, FIELDTERMINATOR = ',', ROWTERMINATOR='\n');

标签: sqlsql-servertsql

解决方案


您可以在导入时允许空值,以消除由空值插入引起的错误。如果您使用脚本或 sql 查询导入 csv,您可以将查询更新为

INSERT INTO table(Col1,Col2,Col3.....) VALUES(ISNULL(value1,0),ISNULL(value2,0),ISNULL(value3,0))

或者您可以在使用以下脚本成功导入 csv 后更新您的表格

update  Tableset  Col1=IIf([Col1] Is Null, "0", [Col1]), 

[Col2]=IIf([Col2] Is Null, "0", [Col2]), 

[Col3] =IIf([Col3] Is Null, "0", [Col3]) 

where [Col1] is null or [Col2] is null or [Col3] is null

最好的方法是在使用 python、jupyter 或任何您熟悉的语言导入数据库之前处理和清理您的数据。


推荐阅读