2012-01-26 5 views
7

मैं अपने डेटाबेस में निम्नलिखित प्रविष्टियों हों:एसक्यूएल: मैं ऑर्डरबी में सामने के लिए शून्य और खाली प्रविष्टियों को कैसे ऑर्डर कर सकता हूं?

आईडी नाम
1 [अमान्य]
2 [रिक्त स्ट्रिंग]
3 अल्फा
4 ब्रावो
5 चार्ली

..then ORDER BY का उपयोग करते समय मैं सामने वाले नामों के साथ पंक्तियों को कैसे ऑर्डर कर सकता हूं?

अगर मैं नाम से आदेश का उपयोग करें, मैं ऊपर सूची प्राप्त है, लेकिन मैं वास्तव में चाहते हैं:

3 अल्फा
4 ब्रावो
5 चार्ली
1 [अमान्य]
2 ''

+0

करता है एक शून्य मान एक रिक्त स्ट्रिंग से पहले आना होगा या वे एक ही कर रहे हैं? शीर्ष पर नाम पाने के लिए – JeffO

उत्तर

20
ORDER BY 
    CASE 
    WHEN Name IS NULL THEN 1 
    WHEN Name = '' THEN 2 
    ELSE 3 
    END DESC, 
    Name ASC 
+0

डीईएससी? – Bort

+0

'अवरोही से आदेश' होना चाहिए क्योंकि वह नीचे – Icarus

+1

+1 पर बहुत ही कुशल और खाली तार चाहता है ... आप जानते हैं कि हर पल नई चीजें सीखने के लिए सोना खान है। अगर आप जवाब देंगे। मैं रिकॉर्ड्स को फ़िल्टर करने वाले तीन यूनियन स्टेटमेंट्स का इस्तेमाल करता, जिसका मतलब था कि डेटाबेस में तीन बार :) – Pankaj

2

आप इस तरह यह कर सकते हैं:

ORDER BY CASE WHEN Name IS NULL then 3 WHEN Name = '' THEN 2 ELSE 1 END, Name 

यह नाम से पहले और बाद के मामले में संख्या के साथ आदेश देगा।

0

आदेश द्वारा (मामला है जब नाम तो शून्य है 1 जब नाम तो शून्य है 2 और के 3 अंत) DESC

2
ORDER BY 
CASE 
    WHEN Name IS NULL THEN 1 
    WHEN Name = '' THEN 2 
    ELSE 3 
END DESC, 
Name ASC 
संबंधित मुद्दे

 संबंधित मुद्दे