我在MySQL数据库中有很多任务,其中一个字段是"截止日期".并非每项任务都必须在截止日期之前完成.
我想使用SQL按截止日期对任务进行排序,但是将没有截止日期的日期放在结果集的后面.就像现在一样,空日期首先出现,然后其余部分按截止日期排序到最晚.
有关如何单独使用SQL的任何想法?(如果需要的话,我可以用PHP来做,但是只有SQL的解决方案会很棒.)
谢谢!
这是一个仅使用标准SQL而不是ISNULL()的解决方案.该函数不是标准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