यहां वह स्थिति है जिसे मैं हल करने की कोशिश कर रहा हूं:क्लॉज द्वारा एसक्यूएल ऑर्डर में कस्टम सॉर्टिंग?
मेरे पास एक प्रश्न है जो रिकॉर्ड्स का एक सेट वापस कर सकता है। इस क्षेत्र के लिए क्रमबद्ध क्षेत्र में कई अलग-अलग मूल्य हो सकते हैं - इस सवाल के लिए हम कहेंगे कि मूल्य ए, बी, सी, डी, ई या जेड
अब क्वेरी के परिणामों के आधार पर हो सकता है सॉर्टिंग को निम्नानुसार व्यवहार करने की आवश्यकता है: यदि केवल एई रिकॉर्ड पाए जाते हैं तो उन्हें "स्वाभाविक रूप से" सॉर्ट करना ठीक है। लेकिन यदि परिणाम में एक जेड रिकॉर्ड है, तो इसे क्वेरी में पहला परिणाम होना चाहिए, लेकिन बाकी के रिकॉर्ड "प्राकृतिक" सॉर्ट ऑर्डर में होना चाहिए।
उदाहरण के लिए, यदि एसीडी पाए जाते हैं, तो परिणाम
A
C
D
होना चाहिए लेकिन अगर ABDEZ तो पाए जाते हैं परिणाम सॉर्ट किया जाना चाहिए:
Z
A
B
D
E
वर्तमान में, क्वेरी की तरह दिखता है:
SELECT NAME, SOME_OTHER_FIELDS FROM TABLE ORDER BY NAME
मैं मैं मैं क्या चाहते करने के लिए एक प्रकार का समारोह कोड कर सकते हैं पता है, लेकिन क्योंकि कैसे की मैं उपयोग कर रहा हूँ नतीजे, मैं उपयोग नहीं कर सकता क्योंकि परिणाम किसी तीसरे पक्ष की लाइब्रेरी द्वारा संभाला जा रहा है, जिसके लिए मैं सिर्फ SQL क्वेरी पास कर रहा हूं। यह तब परिणामों को संसाधित कर रहा है, और मेरे परिणामों को हल करने के लिए कोई हुक नहीं लगता है और परिणाम केवल पुस्तकालय में पास करते हैं। इसे स्वयं SQL क्वेरी करने की आवश्यकता है, और मेरे पास लाइब्रेरी के स्रोत कोड तक कोई पहुंच नहीं है।
तो आप सभी के लिए एसक्यूएल गुरुओं के लिए, क्या आप मेरे लिए एक प्रश्न प्रदान कर सकते हैं जो मैं चाहता हूं?
आप किस डेटाबेस का उपयोग कर रहे हैं? – evilone
डीबी 2 बैकएंड है। मैं कुछ विरासत कोड के साथ काम कर रहा हूँ। अगर मैं एसक्यूएल को बदलने से बच सकता हूं जो सिस्टम मैं उपयोग कर रहा हूं। लेकिन कभी-कभी मुझे ऐसी चीज़ें मिलती हैं जिन्हें फिक्सिंग की आवश्यकता होती है। –