column = null不是woking

时间:2017-05-12 05:26:00

标签: sql sql-server

我发了一个查询

SELECT * FROM tblEmp WHERE emp_id = 9737  AND mgr_id = NULL

并且它没有返回任何值。直到昨天它才这样做。什么可能改变?我们很多人在同一台服务器上工作,所以有可能有人改变了一些东西。

要获得结果,我必须开火

SELECT * FROM tblEmp WHERE emp_id = 9737  AND mgr_id IS NULL

正在提供适当的输出。

由于我在.Net中使用此查询,我担心如果将设置重置为上一个设置时它会中断。会吗?

2 个答案:

答案 0 :(得分:6)

将SQL Server的ANSI_NULLS功能设置为OFF将允许您编写mgr_id = NULL并将其评估为TRUE。

然而,以这种方式比较NULL是不好的做法。大多数RDBMS都不允许这样做,大多数DBA不会以这种方式编写查询,并且ANSI_NULLS设置已被弃用了很长时间并且将被强制 {{1将来。

答案 1 :(得分:0)


嗨,
Null不是值,因此您不能使用=运算符。您应该使用是null 功能,因此它可以正常工作