从一张桌子算起来时,我遇到了一个奇怪的问题.表名是Client,并且有一个名为CardNo的varchar(200)列.数据库引擎是Intersystems Cache,查询语法是SQL.
我执行下面的查询以获得具有/没有CardNo的客户端的数量.但得到意想不到的结果如下.
select count(*) from Client
where CardNo is null
--Result: 38000
select count(*) from Client
where CardNo is not null
--Result: 78000
select count(*) from Client
--Result: 265000
Run Code Online (Sandbox Code Playgroud)
没有CardNo的客户端数量是38000.CardNo的客户端数量是78000.表中所有客户端的数量是265000,不等于78000 + 38000.这怎么可能发生?根据文档,查询样式应该没有问题 http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=RSQL_null