मेरे पास तीन कॉलम वाली एक तालिका है; पहले कॉलम में आईडी हैं और अन्य दो कॉलम में तिथियां हैं (जहां सबसे अधिक शून्य है, लेकिन मुझे नहीं लगता कि इससे कुछ भी प्रभावित होना चाहिए)। मैं किस तारीख के आधार पर आईडी के ऑर्डर करने के बारे में कैसे जाउंगा? मैंने कोशिश की हैएसक्यूएल ऑर्डर दो अलग-अलग (संभावित रूप से शून्य) कॉलम
ORDER BY CASE
WHEN date1 > date2 THEN date1
ELSE date2
END
लेकिन यह काम नहीं किया। क्या कोई मेरी मदद कर सकता है? साथ ही, मैंने जिन अन्य समस्याओं को पोस्ट किया है, उनमें से सभी को यह है कि क्वेरी पहले कॉलम, के आधार पर परिणाम टाइप करती है और फिर यदि पहला कॉलम शून्य, दूसरा कॉलम है। क्या मुझे पहले हर एक शून्य मूल्य को परिभाषित करना होगा? मैं इस तालिका को एक पूर्ण बाहरी शामिल करके बना रहा हूं, इसलिए यह पूछने के लिए एक पूरी तरह से अलग सवाल होगा, इसलिए उम्मीद है कि यह शून्य मूल्यों के साथ किया जा सकता है।
आपकी 'केस' अभिव्यक्ति मेरे लिए ठीक लगती है, सिवाय इसके कि यह उस स्थिति का समर्थन नहीं करता है जहां 'date2' शून्य है; इसका समर्थन करने के लिए, आप लिखना चाहते हैं (कहें) 'केस द्वारा ऑर्डर करें जब दिनांक 1> दिनांक 2 या दिनांक 2 पूर्ण है तारीख 1 ईएलएसई दिनांक 2 ईएनडी। लेकिन आप कहते हैं कि यह "काम नहीं किया"। क्या आप अधिक विशिष्ट हो सकते हैं? उदाहरण के लिए, क्या आप वास्तविक डेटा पोस्ट कर सकते हैं जो सही तरीके से आदेश देने में विफल रहता है? – ruakh
गेबे, कौन सा डेटाबेस क्वेरी चलाएगा? –
इसके बारे में क्षमा करें, मैंने सोचा कि वे सभी एक ही काम करते हैं। लेकिन मैं ओरेकल का उपयोग कर रहा हूँ। मुझे नहीं पता कि यह आपके लिए पर्याप्त विशिष्ट है या नहीं। : एस –