2011-12-14 12 views
8

आदेश दिया मैं नीचे के रूप में एक मेज है,SQL क्वेरी वर्णानुक्रम

ID Description 
-------------------- 
1  Bacteria 
2  Cell Lines 
3  Compounds 
4  Virus 
5  Others 
6  AntiBody 

क्या मैं चाहता हूँ पिछले रिकॉर्ड के रूप में एक भी SQL क्वेरी, वर्णानुक्रम लेकिन 'अन्य' (आईडी 5) है। क्या यह भी संभव है?

किसी भी मदद की सराहना की जाएगी। धन्यवाद।

उत्तर

10
SELECT ID, Description 
    FROM YourTable 
    ORDER BY CASE WHEN ID = 5 THEN 1 ELSE 0 END, 
      Description 
+0

यह काम करता है और यह अधिक सुविधाजनक है। धन्यवाद जो। – MadushM

10
SELECT ID, Description 
FROM yourtable 
ORDER BY CASE WHEN Description = 'Others' THEN 1 ELSE 0 END, Description 
+0

क्या आपको नहीं लगता कि यह आईडी पर फ़िल्टर करने के लिए और अधिक सलाह दी जाएगी? – syneptody

+3

@ सिंप्टोडी: विशेष रूप से नहीं। आप ऐसा क्यों सोचते हैं? व्यक्तिगत रूप से मैं स्रोत कोड में जादू संख्याओं का बड़ा प्रशंसक नहीं हूं जब तक कि एक बहुत ही आकर्षक कारण न हो। यदि आप प्रदर्शन सुधार चाहते हैं तो आप विवरण 'अन्य' के साथ पंक्ति की आईडी प्राप्त कर सकते हैं और इसका उपयोग कर सकते हैं, लेकिन यह देखते हुए कि केवल 6 पंक्तियां हैं, ऐसा लगता है कि यह मेरे लिए अधिक है (और शायद यह धीमा भी होगा!)। वैसे भी, ओपी वास्तव में अपनी विशिष्ट जरूरतों के बारे में अधिक जानकारी प्रदान नहीं करता था, इसलिए यह कहना मुश्किल है कि सबसे अच्छा क्या है। –

+2

निश्चित रूप से केस-दर-केस कॉल लेकिन आम तौर पर 1) एक मजबूत संभावना है कि आईडी को इंडेक्स में शामिल किया जाएगा 2) एक मजबूत संभावना है कि आईडी आईडी से पहले बदल जाएगी और 3) यदि आप आईडी (इन इस मामले में) आप क्वेरी को स्पर्श किए बिना आखिरी बार दिखाना चाहते हैं (केवल विवरण अपडेट करें जहां आईडी = 5) – syneptody