今天遇到一个问题,数据库中的某个时间字段排序,但是会有空值的情况,
要求如下,不会空值的记录按时间升序排序,放在排序结果的前面,为空的放在排序结果的后面。
最后我写出来的sql如下所示:
order by case when a.pnr_no_time is null then '9999-12-31' else a.pnr_no_time end
当pnr_no_time 为空的时候,按照一个常量排序,事实上事实上,这个常量是什么无所谓,9999-12-31会让人联想到一个很大的时
间,其实你将它换成1也是一样。
排序的时候会将满足空值的记录放到排序结果的最后面,(降序的时候满足空值的会放到最前面)