我将一个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... */
然后决定如何进行...