0
我的日期列在sql表中可以爲空,所以我使用OData獲取該數據,但如果我通過asc命令它,則空值位於所有其他行之前。我想,這一切都他人後desplayed:Odata覆蓋行爲orderby
1. 31.12.2000
2. 31.12.2010
3. null
是否有可能以某種方式覆蓋過濾所以它採取空值可能是DateTime.MaxValue?
我的日期列在sql表中可以爲空,所以我使用OData獲取該數據,但如果我通過asc命令它,則空值位於所有其他行之前。我想,這一切都他人後desplayed:Odata覆蓋行爲orderby
1. 31.12.2000
2. 31.12.2010
3. null
是否有可能以某種方式覆蓋過濾所以它採取空值可能是DateTime.MaxValue?
ANSI標準支持NULLS FIRST
和NULLS LAST
,但SQL Server沒有這些選項。
相反,你可以在ORDER BY
使用兩個密鑰:
order by (case when col is not null then 1 else 2 end),
col asc
不正是我需要的。這裏[link](https://msdn.microsoft.com/en-us/library/gg309461(v = crm.7).aspx#BKMK_orderby)就是我使用
'/ AccountSet?命令的例子$ select = Address1_Country ,Address1_City,Name&$ orderby = Address1_Country asc&$ filter =(Address1_Country ne null)and(Address1_City ne null)'。
那麼如何更改$ orderby = Address1_Country asc,所以空值會進入隊列末尾。 – maximelian1986
由於沒有其他建議,我會將其標記爲正確的,因爲它指出了我的問題的另一個解決方案。不過,我更新了數據庫並將null更改爲DateTime.MaxValue,因此可以使用OData orderby屬性完成排序。 – maximelian1986