ODATA V4 如何过滤多个不等于0的

问题描述 投票:0回答:1

我正在尝试将 ODATA 与过滤器一起使用,该过滤器仅在 a、b 和 c 都不等于 0 时才显示数据。

我想说的是:

#Data i want to get
a=1
b=0
c=0

#Also data i want to get
a=1
b=1
c=0

#Data i do not want to get
a=0
b=0
c=0

我尝试做

?$filter=a ne 0 and b ne 0 and c ne 0
,但这只能获取所有值必须为 not 0 的数据。即
a=1,b=1,c=1

我想说的是:如果所有值都为0,如何过滤排除数据?

我尝试在代码中处理之前进行过滤,因为这将为我每个请求平均节省 9 秒的时间。

odata odata-v4
1个回答
0
投票

一个选项可以使用

not
运算符。

您不想返回所有

a
b
c
等于
0
的数据。

?$filter=not(a eq 0 and b eq 0 and c eq 0)

如果不支持

not
,则
not(a eq 0 and b eq 0 and c eq 0)
的替代方案是

?$filter=a ne 0 or b ne 0 or c ne 0
© www.soinside.com 2019 - 2024. All rights reserved.