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;
posted @ 2021-01-12 23:15  流浪的小花猫  阅读(184)  评论(0编辑  收藏  举报