【发布时间】:2017-05-12 05:25:59
【问题描述】:
我触发了一个查询
SELECT * FROM tblEmp WHERE emp_id = 9737 AND mgr_id = NULL
它不返回任何值。直到昨天它还在这样做。可能会改变什么?我们很多人都在同一台服务器上工作,所以有人可能会改变一些东西。
为了得到结果,我必须开火
SELECT * FROM tblEmp WHERE emp_id = 9737 AND mgr_id IS NULL
这是给出正确的输出。
由于我在.Net 中使用此查询,我担心在将设置重置为以前的设置时它会中断。会吗?
【问题讨论】:
-
AFAIK 您的原始查询不应该返回任何内容。这样做的原因是,使用 equals 与
NULL进行比较总是NULL。而emp_id = 9737 AND NULL也是未知数。经验教训,在与NULL进行比较时使用IS NULL和IS NOT NULL。
标签: sql sql-server