如何按字段排序DESC,但首先列出NULL值?mysql order by,null first,and DESC after
所以我有一個表:
reuestId | offerId | offerTitle
1 | 1 | Alfa
NULL | 2 | Beta
2 | 3 | Gamma
我要選擇它們,這樣的結果將是:
NULL | 2 | Beta
2 | 3 | Gamma
1 | 1 | Alfa
如何按字段排序DESC,但首先列出NULL值?mysql order by,null first,and DESC after
所以我有一個表:
reuestId | offerId | offerTitle
1 | 1 | Alfa
NULL | 2 | Beta
2 | 3 | Gamma
我要選擇它們,這樣的結果將是:
NULL | 2 | Beta
2 | 3 | Gamma
1 | 1 | Alfa
試試這個:
ORDER BY [reuestId] IS NULL DESC, [reuestId] DESC
應該工作(for mySql)
SELECT *
FROM TableX
ORDER BY (requestId IS NOT NULL)
, requestId DESC
我認爲這個答案與第一個相反? – 2015-03-05 06:57:32
@ xi.lin:不,第一個按照DESC順序放置'IS NULL' *(實質上是一個返回1或0的函數)*,這個按照升序放置'IS NOT NULL'。它們是相同的。 – 2015-04-02 03:52:25
@ BlueRaja-DannyPflughoeft感謝您的解釋!我錯誤地認爲IS NULL是一個過濾器而不是一個函數。 – 2015-04-02 04:40:16
或子查詢到類別 – delive 2016-02-04 15:03:55