无法显示具有空值的字段

时间:2014-05-22 15:45:48

标签: sql vb.net ms-access

select * from table1  where [a]=? and [b] is null

执行该语句时,不返回任何记录。如果我更改" [b]为null"部分到" [b] =?"并将null值传递给参数,结果相同:没有记录。但是,如果我传递一个非空值,那么它工作正常。我必须显示b字段为空的记录。

另外,我在这个网站的某处读到null并不匹配自己(null = null返回false)。为什么会这样呢?

编辑:对不起,刚发现了这个。为了清晰起见,简化了我的代码。

select * from table1  where [a]=? and [b] is null and [c]=?

当"为空时,它才起作用。之后是另一个条件。我该如何解决这个问题?

编辑2:我通过重新排列条件使其工作,因此' [b]为空'在声明的最后。但有人可以向我解释一下吗?如果" [b]为空,为什么语句不能正常工作"之后是"和[c] =?"?

1 个答案:

答案 0 :(得分:0)

您是否可以确定要捕获的行中列[b]的内容实际上是否包含NULL值?听起来它们可能是空的而不是NULL。

如果是这种情况,运行下面的查询将会起作用。

select * from table1  where [a]=? and [b] =''