当此数据从文本文件导入到 SQL Server 数据库时,IS NULL 在 where 子句中不起作用



我将一个Excel文件转换为文本文件,然后使用SQL Server导入/导出向导工具将此文本文件导入到SQL Server数据库中。我发现IS NULL在一列的 where 子句中不起作用(请参阅以下内容(:

WHERE ID IS NULL;

顺便说一句,ID列的数据类型varchar(50),默认为null

有人知道为什么IS NULL在这里不起作用吗?

导入可能将值作为空字符串加载到 NULL 中。 若要处理此问题,请将WHERE ID IS NULL更改为WHERE ID = ''

如果您希望它们NULL,您可以更改它们:

UPDATE Your_Table SET ID = NULL WHERE ID = ''

大卫的答案很可能是你需要的,但为了完整性......这些价值观是真的NULL还是'null'

测试:

SELECT TOP 5 * FROM TABLE WHERE ID IS NULL

测试:

SELECT TOP 5 * FROM TABLE WHERE ID='null'

如果后者返回结果,则存储字符串'null',而不是实际的 ABSENT/NULL 值。

您可以按如下方式将它们设置为NULL

UPDATE T
SET ID=NULL
FROM TABLE T
WHERE ID='null'

如果两者都没有返回数据,则查找其中的内容...也许它们都是合法的价值观。

SELECT COUNT(2), ID
FROM TABLE
GROUP BY ID
ORDER BY ID
--HAVING COUNT(2)>1 /* uncomment this line if too much comes back... */

然后决定如何进行...

相关内容

  • 没有找到相关文章