如何在odata响应中跳过空值?

时间:2013-10-15 13:35:18

标签: null odata skip

我有一个返回一些空值的odata Web服务。我想跳过这些空值。 我试图使用Ne(不等于)运算符来过滤具有空值的数据:

analyticView.xsodata/analyticView?$select=QUANTITY_SOLD,SALE_PRICE&$filter=SALE_PRICE+Ne+null)&$format=json

我收到以下错误消息:

"Illegal operation 'Ne' at position 11."

我还尝试以这种方式将Not运算符与eq运算符组合在一起:

analyticView.xsodata/analyticView?$select=QUANTITY_SOLD,SALE_PRICE&$filter=not(SALE_PRICE+eq+null)&$format=json

我不断收到错误消息:

value: "No property 'null' exists in type ...

我使用SAP HANA分析视图作为数据源,但我认为该问题不依赖于供应商。 那么,如何跳过空值呢?

2 个答案:

答案 0 :(得分:7)

上述解决方案应该可以正常工作,请记住,如Tne所指出的那样,运算符区分大小写。 因此,通常可以使用以下过滤空值:

  • $滤波器=(SALE_PRICE + NE +空)
  • 或$ filter = not(SALE_PRICE + eq + null)

但是,在SAP HANA分析视图的特定情况下,不支持空值,因为可以在分析视图的建模级别的表列上定义过滤器。解释了解决方案here

答案 1 :(得分:3)

请注意,运算符区分大小写。 (使用ne代替Ne。)

规范确实提到“ISNULL或COALESCE运算符未定义。而是有一个可用于比较的空文字”(v3.0,URL约定,第5.1.2.4节) ),这意味着它应该工作。

确实,我试过Property ne null没有任何问题。有点奇怪的是,你not的尝试虽然没有用,但应该有效。也许看看用空格替换+个字符(可能是编码的),也许服务器很困惑。

相关问题