如何在ODATAV4中对两个查询通用not运算符?

如何在ODATAV4中对两个查询通用not运算符?,odata,odata-v4,not-operator,Odata,Odata V4,Not Operator,目前,我的查询字符串如下: http://localhost:49442/Orders/?$count=true&$filter=not%20(Freight%20eq%202.3)%20and%20(startswith(tolower(CustomerID),%27b%27))&$skip=0&$top=12 但在这里,操作人员只负责过滤运费列。但是我想让这个not操作符过滤运费和客户ID很难识别您想要的表达式,因为它介于两个表达式之间: 如果要仅排除同时满足以下两

目前,我的查询字符串如下:

http://localhost:49442/Orders/?$count=true&$filter=not%20(Freight%20eq%202.3)%20and%20(startswith(tolower(CustomerID),%27b%27))&$skip=0&$top=12

但在这里,操作人员只负责过滤运费列。但是我想让这个not操作符过滤运费客户ID

很难识别您想要的表达式,因为它介于两个表达式之间:

  • 如果要仅排除同时满足以下两个条件的行:

    • 运费公式2.3
    • 客户以“b”开头
    然后,您可以通过重新排列括号来完成此操作,以下内容与所说的相同:
    “排除客户以b开头的订单,但仅当运费为2.3时,

  • 相反,如果您想排除所有客户以“b”开头的订单,并且也要排除运费为2.3的所有其他订单,则必须在查询中指定两次

    • 这与“排除客户以b开头的订单,如果运费为2.3”


  • @库拉尔这有帮助吗,还是你用另一种方式解决了?
    http://localhost:49442/Orders/?$count=true&$filter=not(Freight eq 2.3 and startswith(tolower(CustomerID),'b'))&$skip=0&$top=12
    
    http://localhost:49442/Orders/?$count=true&$filter=not(Freight eq 2.3) and not(startswith(tolower(CustomerID),'b'))&$skip=0&$top=12