可以使用SQL按date进行sorting,但将空date放在结果集的后面?

我在MySQL数据库中有一堆的任务,其中一个字段是“截止date”。 并不是每个任务都必须有截止date。

我想用SQL按截止date对任务进行sorting,但在结果集的后面放置没有最后期限的date。 就像现在一样,无效date首先显示,其余按最早的截止datesorting。

任何关于如何单独使用SQL的想法? (如果需要的话,我可以用PHP来完成,但是只有SQL的解决scheme会很棒。)

谢谢!

这是一个只使用标准SQL的解决scheme,而不是ISNULL()。 该function不是标准的SQL,可能不适用于其他品牌的RDBMS。

SELECT * FROM myTable WHERE ... ORDER BY CASE WHEN myDate IS NULL THEN 1 ELSE 0 END, myDate; 
 SELECT * FROM myTable WHERE ... ORDER BY ISNULL(myDate), myDate 
 SELECT foo, bar, due_date FROM tablename ORDER BY CASE ISNULL(due_date, 0) WHEN 0 THEN 1 ELSE 0 END, due_date 

所以你有2个子句的顺序。 第一个将所有非空值放在前面,然后按到期日sorting