今天在處理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;