Azure cosmosdb 带有WHERE子句的Azure Cosmos SQL结果没有意义

Azure cosmosdb 带有WHERE子句的Azure Cosmos SQL结果没有意义,azure-cosmosdb,azure-cosmosdb-sqlapi,Azure Cosmosdb,Azure Cosmosdb Sqlapi,我正在对我的Cosmos数据库运行一些查询,结果似乎没有意义。当我知道应该得到一些结果时,我通过一些查询得到了0个结果。以下是查询结果: SELECT COUNT(c.id) from c where c.ownerTime='2010775021_202009' -- 165229 SELECT COUNT(c.id) from c where c.ownerTime='2010775021_202009' and c.source='five9'

我正在对我的Cosmos数据库运行一些查询,结果似乎没有意义。当我知道应该得到一些结果时,我通过一些查询得到了0个结果。以下是查询结果:

SELECT COUNT(c.id) from c where c.ownerTime='2010775021_202009'                        -- 165229
SELECT COUNT(c.id) from c where c.ownerTime='2010775021_202009' and c.source='five9'   -- 132100
SELECT COUNT(c.id) from c where c.ownerTime='2010775021_202009' and c.source<>'five9'  -- 0
SELECT COUNT(c.id) from c where c.ownerTime='2010775021_202009' and c.source=null      -- 0
请尝试以下sql:

SELECT COUNT(c.id) from c where c.ownerTime='2010775021_202009' and (not IS_DEFINED(c.source) or c.source<>'five9')

好吧,这确实奏效了,但查询的成本实际上要高出2000倍。当然有一种不用子选择的方法吗?@MattSpinks我更新了我的答案。你可以试试SQL。在这种情况下,我总是使用模式c.source??空!='五点九分。鲁智思,我想这相当于史蒂夫的回答。@SteveZhao谢谢。那个更新很有魅力。@MoB。谢谢你的洞察力。在测试中,它使用与答案相同的RU,我喜欢它有多短。
SELECT COUNT(c.id) from c where c.ownerTime='2010775021_202009' and (not IS_DEFINED(c.source) or c.source<>'five9')