我有一个返回一些空值的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分析视图作为数据源,但我认为该问题不依赖于供应商。 那么,如何跳过空值呢?
答案 0 :(得分:7)
上述解决方案应该可以正常工作,请记住,如Tne所指出的那样,运算符区分大小写。 因此,通常可以使用以下过滤空值:
但是,在SAP HANA分析视图的特定情况下,不支持空值,因为可以在分析视图的建模级别的表列上定义过滤器。解释了解决方案here。
答案 1 :(得分:3)
请注意,运算符区分大小写。 (使用ne
代替Ne
。)
规范确实提到“ISNULL或COALESCE运算符未定义。而是有一个可用于比较的空文字”(v3.0,URL约定,第5.1.2.4节) ),这意味着它应该工作。
确实,我试过Property ne null
没有任何问题。有点奇怪的是,你not
的尝试虽然没有用,但应该有效。也许看看用空格替换+
个字符(可能是编码的),也许服务器很困惑。