2012-02-16 27 views
60

'dan sonra DESC DESC'yi bir alandan nasıl sipariş edebilirim, ancak önce NULL değerleri listeleyebilir miyim? Sonuçlar olacak şekildemysql sırası, null, önce ve

reuestId | offerId | offerTitle 
1  | 1  | Alfa 
NULL  | 2  | Beta 
2  | 3  | Gamma 

Onları seçmek istediğiniz:

ORDER BY [reuestId] IS NULL DESC, [reuestId] DESC 

çalışması gerekir:

NULL | 2 | Beta 
2 | 3 | Gamma 
1 | 1 | Alfa 

cevap

118

bu deneyin

Bu yüzden bir tablo yaşıyorum (mySql için)

+0

Ya da – delive

23
SELECT * 
FROM TableX 
ORDER BY (requestId IS NOT NULL) 
     , requestId DESC 
+0

kategorisine alt sorgu Bu sorunun cevabı birincinin karşıtı mıdır? –

+1

@ xi.lin: Hayır, birincisi DESC düzeninde * IS NULL * * (temelde 1 veya 0 döndüren bir işlevdir) * koyar, bu artan bir şekilde IS NULL değil. Eşdeğer. –

+0

@ BlueRaja-DannyPflughoeft Açıkladığınız için teşekkürler! Yanlışlıkla, NULL, bir işlev yerine bir filtre olduğunu düşündüm. –

İlgili konular