0

2つの列がある場合:

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

行がnullかどうかを比較し、その後で並べ替えることができます。

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

(vip_date IS NULL)1行がである場合とNULLそう0でない場合になります。したがって、0は1の前にあります(そのため、昇順で並べ替えています)。

于 2013-03-15T16:43:41.750 に答える