Sql Can';不显示具有空值的字段

Sql Can';不显示具有空值的字段,sql,vb.net,ms-access,Sql,Vb.net,Ms Access,当执行该语句时,它不返回任何记录。如果我将“[b]为空”部分更改为“[b]=?”并将空值传递给参数,则结果相同:无记录。但是,如果我传递一个非null值,那么它就可以正常工作。我必须显示b字段为空的记录 另外,我在这个站点的某个地方读到null与自身不匹配(null=null返回false)。为什么会这样 编辑:对不起,刚刚发现这个。为了清晰起见,我简化了代码 select * from table1 where [a]=? and [b] is null 只有当“is null”后面跟着另

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

另外,我在这个站点的某个地方读到null与自身不匹配(null=null返回false)。为什么会这样

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

select * from table1  where [a]=? and [b] is null
只有当“is null”后面跟着另一个条件时,它才起作用。我如何解决这个问题


编辑2:我重新安排了条件,使“[b]为null”位于语句的末尾,从而使其工作。有人能给我解释一下吗?如果“[b]为null”后接“and[c]=?”,为什么语句不能正常工作?

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

如果是这样的话,运行下面的查询就可以了

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

确切地说,IS NULL按预期工作。[b]的数据类型是什么?如果是字符串,那么下面的答案可能是正确的。
select * from table1  where [a]=? and [b] =''