我有一个SQL服务器数据库,我正在查询它,但我只想在特定行为空时获取信息。我使用了where语句,例如:
WHERE database.foobar = NULL
这个查询似乎没有返回任何结果。但是,我知道至少有一个结果,因为我在数据库中创建了一个实例,其中'foobar'等于null。如果我去掉where语句,它会显示数据,所以我知道不是查询的其余部分出了问题。
有人能帮我解决吗?
我有一个SQL服务器数据库,我正在查询它,但我只想在特定行为空时获取信息。我使用了where语句,例如:
WHERE database.foobar = NULL
这个查询似乎没有返回任何结果。但是,我知道至少有一个结果,因为我在数据库中创建了一个实例,其中'foobar'等于null。如果我去掉where语句,它会显示数据,所以我知道不是查询的其余部分出了问题。
有人能帮我解决吗?
正确的语法是 WHERE database.foobar IS NULL。更多信息请参见http://msdn.microsoft.com/en-us/library/ms188795.aspx
每次与NULL进行比较都会得到false。你需要使用IS NULL。
x = NULL -- always false
x <> NULL -- always false
x IS NULL -- these do what you want
x IS NOT NULL
IS NULL
和IS NOT NULL
异常情况。 - onedaywhen