当前位置:  开发笔记 > 编程语言 > 正文

可以使用SQL按日期排序,但将空日期放在结果集的后面?

如何解决《可以使用SQL按日期排序,但将空日期放在结果集的后面?》经验,为你挑选了2个好方法。

我在MySQL数据库中有很多任务,其中一个字段是"截止日期".并非每项任务都必须在截止日期之前完成.

我想使用SQL按截止日期对任务进行排序,但是将没有截止日期的日期放在结果集的后面.就像现在一样,空日期首先出现,然后其余部分按截止日期排序到最晚.

有关如何单独使用SQL的任何想法?(如果需要的话,我可以用PHP来做,但是只有SQL的解决方案会很棒.)

谢谢!



1> Bill Karwin..:

这是一个仅使用标准SQL而不是ISNULL()的解决方案.该函数不是标准SQL,可能不适用于其他品牌的RDBMS.

SELECT * FROM myTable
WHERE ...
ORDER BY CASE WHEN myDate IS NULL THEN 1 ELSE 0 END, myDate;



2> nickf..:
SELECT * FROM myTable
WHERE ...
ORDER BY ISNULL(myDate), myDate


是的 - 只有一个.http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_isnull
推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有