2013-10-15 31 views
3

我有一個返回一些空值的odata web服務。我想跳過這些空值。 我試圖用氖(不等於)運算符將數據與零值進行過濾:如何在odata響應中跳過空值?

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

和我收到以下錯誤消息:

"Illegal operation 'Ne' at position 11." 

我試圖也給不合並運營商,在這樣的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

在課堂上如何定義SALE_PRICE? – qujck

+0

如果明白你的問題,這裏是SALE_PRICE是如何在odata提供者的元數據中定義的 MedAli

+1

我想我試圖理解如果SALE_PRICE是可空的,並且這可能是問題,因爲語法看起來正確,並且通過在'System.Web.Http.OData'命名空間中找到的OData在我這裏工作。 – qujck

回答

4

上述解決方案應該可以正常工作,但要記住,運營商是區分大小寫的,正如Tne指出的那樣。 所以一般過濾空值,你可以使用:

  • $過濾器=(SALE_PRICE + NE +空)
  • 或$篩選=不(SALE_PRICE + EQ +空)

然而在SAP HANA分析視圖的特定情況下,不支持空值,因爲可以在分析視圖的建模級別的表列上定義過濾器。該解決方案解釋爲here

2

請注意,運算符區分大小寫。 (使用ne而不是Ne。)

該規範沒有提到「ISNULL或COALESCE運營商沒有定義,取而代之的是文字空,可以在比較中使用」(V3.0,URL約定,第5.1.2.4節),這意味着它應該工作。

確實,我試過Property ne null沒有任何問題。奇怪的是,您嘗試使用not雖然沒有用,但應該已經奏效。也許看看用空格替換+字符(可能是編碼),也許服務器很困惑。