sqlserver非空排序
如果数据库里有一个日期字段ExpectFinishDate(期望完成日期),该字段可以为空,如果为空,说明这条数据的重要程度比较低,
而页面希望能把重要程度比较高的数据显示在前面,所以需要按照ExpectFinishDate的升序排序,
但是sqlserver如果按照ExpectFinishDate asc排序的话,ExpectFinishDate为空的数据会显示在最前面,
为了避免这种情况出现,可以有两种处理方式:
第一种:union把ExpectFinishDate不为空的数据和ExpectFinishDate为空的数据联合起来。
第二种:order by IsNull(ExpectFinishDate,'9999-12-31 23:59:59');通过把空的数据设置成最大值排序。
oracle中有nulls first和nulls last可以使用