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;
相关文章
相关标签/搜索