如何做Odata查询过滤器!=布尔值

时间:2014-02-06 19:58:51

标签: sql odata boolean-logic

我想做一个Odata查询,我在这里过滤一个布尔列:

示例:

IsVisible != true (or IsVisible != false).

现在我知道在Odata中,这将是“IsVisible ne'true'”。 如果IsVisible恰好为null,那么这个“ne true”不会返回IsVisible的空值(这就是我想要的)。相反,它只返回IsVisible == true的值。

我知道我可以通过这样的方式得到我想要的记录:

IsVisible == null (IsVisible eq 'null').

问题是:

  

如何让Odata返回IsVisible =='true'和IsVisible ==   当我按IsVisible过滤时'null'!= false(IsVisible ne'false')?

1 个答案:

答案 0 :(得分:0)

查看您分配给问题的标记,我会指出这实际上不是布尔逻辑,而是three-valued logic。这些模型的实现必然会对其构造做出任意选择,而在OData的情况下,似乎“不是假的东西必须是真的”。

我认为这部分原因是因为更多的人会感到困惑,部分原因是因为大多数其他实现也是如此。

据我所知,您的用例没有快捷方式(您必须明确检查这两个条件)。