如果我有两个列:
number | vip_date
22 | 22.03.2013
32 | 12.01.2013
38 | NULL
44 | 06.01.2013
20 | 30.03.2013
10 | NULL
我想按数字和日期排序,所以我会做... ORDER BY number DESC, vip_date DESC
。
结果按日期排序,带有NULL日期的2行按编号排序。 问题是,如何按NOW()之后的日期和按NOW()之前的数字日期排序?
答案 0 :(得分:0)
您可以比较该行是否为null,并在此之后进行排序:
ORDER BY number DESC, (vip_date IS NULL) ASC, vip_date DESC
如果行(vip_date IS NULL)
, 1
将为NULL
,如果不是0
则为{{1}}。因此,0在1之前(这就是我们对升序进行排序的原因)。