与字符串比较时,列中具有空值的行不会显示

时间:2013-06-05 21:59:57

标签: sql crystal-reports oracle9i crystal-reports-xi oracle-sqldeveloper

首先对不起标题,我知道现在还不清楚,但我找不到更好的一个!我有一份水晶报告。此报告不使用命令(sql查询)从oracle数据库中获取数据。以前的开发人员使用表之间的链接,因此查询是动态生成的。

我使用菜单“Show Sql Query”查看生成的sql查询。我生成sql查询的原因是因为某些记录没有显示在结果中,所以我想在SQL Developer中执行查询,我发现了问题并相信我这是一个非常奇怪的问题。实际上,在WHERE子句中有这个过滤器(TableX.FieldY<>'blabla')。通常它应该包括该列中包含NULL的行,但事实并非如此!

在结果中,oracle不显示该列中具有空值的行!我相信null与'blablabla'不同,那么为什么那列中具有空值的记录不显示?请你帮助我好吗?另外,即使解决方案是修改查询中的某些内容,我也无法修改查询,因为它是由Crystal报表自动生成的。非常感谢你的宝贵帮助。

Walloud

1 个答案:

答案 0 :(得分:1)

NULL不等于任何东西。 NULL有自己的比较,IS NULL或IS NOT NULL:

 TableX.FieldY <> 'blabla'
OR  TableX.FieldY IS NULL