odata查询-是否有方法添加一个;“和假”;过滤
odata查询-是否有方法向筛选器添加“and false” 这是一个连接到SAP系统的查询 假设我的url是: /PlannerGrpSet?$top=50和$filter=(Werks eq'3000')和$select=* 我想做: /PlannerGrpSet?$top=50和$filter=(Werks eq'3000'和false)和$select=* 不要问我为什么,我们有一个工具,它正在转换我们生成的一些复杂sql,在sql中我们做0=1表示不返回数据。是的,我知道我们疯了 只需添加和false即可得到: 远程服务器返回错误:(500)内部服务器错误 关于我如何得到我想要的东西有什么想法吗?再次强调,不要寻找“不要那样做”。另外,我也不希望尝试像Werks eq“3000”和Werks eq“3001”这样的操作,理想情况下,我不希望随机选择一个列并执行类似操作。forodata查询-是否有方法添加一个;“和假”;过滤,odata,Odata,odata查询-是否有方法向筛选器添加“and false” 这是一个连接到SAP系统的查询 假设我的url是: /PlannerGrpSet?$top=50和$filter=(Werks eq'3000')和$select=* 我想做: /PlannerGrpSet?$top=50和$filter=(Werks eq'3000'和false)和$select=* 不要问我为什么,我们有一个工具,它正在转换我们生成的一些复杂sql,在sql中我们做0=1表示不返回数据。是的,我知道我们疯了 只需
$filter
表达式允许使用原始文本(例如,false
)位于和表达式的右侧。所以,看起来您遇到了服务背后OData实现的缺陷或限制
下面是一个在$filter
中使用文本false
值的示例
http://services.odata.org/V4/(S(ztoosdlp5wrqdiv233gmrqys))/TripPinServiceRW/People?$filter=UserName eq 'russellwhyte' and false
您可以尝试另一个肯定会失败的逻辑表达式。例如,0 eq 1
我认为您是正确的,这是SAP后端的一个限制。您知道oData的2.0版是否也支持基本文本吗?版本2有演示服务吗?对不起,有额外的问题。我确实尝试了0 eq 1,但也遇到了错误。根据(版本2规范)第2.2.3.6.1.1节“通用表达式语法”,布尔文字在$filter
中是合法的。但是boolLiteralExpression
规则的定义是这样的:“数据服务可能支持表示布尔值的文本表达式。”这意味着它是可选的。