2011-08-30 10 views
11

मैं एक तालिका से एक कॉलम का अधिकतम चयन कर रहा हूँ। लेकिन एक समस्या है: यदि तालिका में कोई पंक्ति नहीं है, तो यह शून्य हो जाती है।क्या MySQL में ओरेकल फ़ंक्शन एनवीएल के बराबर कोई फ़ंक्शन है?

मैं एक फ़ंक्शन का उपयोग करना चाहता हूं जो परिणाम शून्य होने पर एक निश्चित मान वापस कर देगा। उदाहरण के लिए ओरेकल के साथ NVL फ़ंक्शन है जो कॉलम शून्य होने पर एक निश्चित मान देता है। क्या MySQL में समकक्ष फ़ंक्शन है?

उत्तर

16
select coalesce(column_name, 'NULL VALUE') from the_table 
+3

यह एनवीएल का एसक्यूएल मानक संस्करण है, और ओरेकल में भी काम करता है (9i के बाद से, मुझे विश्वास है)। – Thilo

+0

प्रश्न पूछता है _ "लेकिन एक समस्या है: यदि तालिका में कोई पंक्ति नहीं है, तो यह शून्य हो जाती है।" _ हालांकि, कोलेसेस इसे हल नहीं करता है - यदि कोई पंक्ति वापस नहीं आती है, तो कोई पंक्तियां वापस नहीं आती हैं। यह सब कुछ निश्चित पंक्तियों के लिए एक गैर-शून्य मान सुनिश्चित करता है * कुछ पंक्तियों को वापस लौटाया जाता है * लेकिन फिर, न तो ओरेकल में nvl करता है :) – Adam

+0

@Adam। तालिका में कोई पंक्ति नहीं होने पर भी कुल कार्य 'अधिकतम' एक पंक्ति (इसमें शून्य के साथ) लौटाएगा। सभी coalesce करता है (और सभी सवाल पूछा गया है) एक डिफ़ॉल्ट मूल्य के लिए शून्य है कि बदल गया है। – Thilo

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