0

如果我有两个列:

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() 之前的日期按数字排序?

4

1 回答 1

0

您可以比较该行是否为空,然后排序:

ORDER BY number DESC, (vip_date IS NULL) ASC, vip_date DESC

(vip_date IS NULL)将是1如果该行是NULL0如果不是。因此,0 在 1 之前(这就是我们升序排序的原因)。

于 2013-03-15T16:43:41.750 回答