我有一个查询连接三个表并返回一个别名计算作为最后一个字段。当加入的字段中存在空值时,该值通常为空。加入效果很好。使用WHERE IS NULL返回所有值
我想只返回记录,我在计算字段中得到空值。
但是,如果我添加
WHERE field_name IS NULL
到最后我没有得到任何记录
如果我添加
WHERE field_name IS NOT NULL
我得到的一整套,我可以看到几个记录为事实null
任何解释为什么或如何解决这个问题?
编辑:我找到了我的情况的解决方案。字段名称是上面计算的别名。当我在where子句中复制计算时,不是放置别名,而是正确运行。
你确定它们是实际的'NULL'而不是字符串''NULL''吗?您可能不得不展示更多的查询。 –
我认为这会有助于我们看到你正在计算的连接和表达式。 – shawnt00
哦。只是一个想法 - 你是否在你的'SELECT'子句中沿'a * b * field_value * c'的行作为field_value' - 即创建一个与现有列名称匹配的别名?因为如果是这样的话,请注意在''SELECT'之前运行'WHERE',所以它会过滤*列*,而不是你的计算值。 –