ASPxGridView排序空值默認爲最小,Oracle數據庫空值默認最大引發的排序問題

今天在處理ASPxGridView自定義頁面排序,若是數據沒有空值,則排序正常,若是有空值按從小到大的順序排序,假如最後一頁有數據有空值,頁面顯示的空值在前數據在後,這顯然與先前的對不上,後來發現數據庫

  • ASPxGridView中空值默認爲最小
  • Oracle在Order by 時缺省認爲NULL是最大值,因此若是是ASC升序則排在最後,DESC降序則排在最前

解決方法:排序

使用 NULLS FIRST  或者 NULL LAST  語法
讓Oracle數據庫的排序規格按ASPcGridView的排序規則來,升序時用NULLS FIRST將NULL值的數據排在最前,降序時用NULLS LAST將NULL值的數據排在最後。
使用語法以下:
--將NULLS放在最前
SELECT * FROM 代表 ORDER BY 排序字段 ASC NULLS FIRST; --將NULLS放在最前 SELECT * FROM 代表 ORDER BY 排序字段 DESC NULLS LAST;
相關文章
相關標籤/搜索