2008-10-21 5 views
10

माइक्रोसॉफ्ट एक्सेस में Nz फ़ंक्शन का MySQL समतुल्य क्या है? Nz एक एसक्यूएल मानक है?MySQL में एमएस एक्सेस में एनजे फ़ंक्शन के बराबर क्या है? एनजे एक एसक्यूएल मानक है?

एक्सेस में, Nz फ़ंक्शन आपको एक वैरिएंट शून्य होने पर एक मान वापस करने देता है। Source

Nz समारोह के लिए वाक्य रचना है:

Nz (variant, [ value_if_null ]) 

उत्तर

11

COALESCE() फ़ंक्शन जो आप वर्णन करते हैं वह करता है। यह मानक एसक्यूएल है और इसे सभी एसक्यूएल डेटाबेस में समर्थित होना चाहिए।

IFNULL() फ़ंक्शन मानक SQL नहीं है। डेटाबेस के केवल कुछ ब्रांड इस फ़ंक्शन का समर्थन करते हैं।

3

आप IFNULL या COALESCE को देखने के लिए चाहते हो सकता है। अगर मुझे सही याद है, IFNULL MySQL के लिए काम करता है।

+0

IFNULL mysql के लिए बराबर है। –

0

शायद यह जानना कि एमएस एक्सेस एनजेड() फ़ंक्शन वास्तव में क्या उपयोगी होगा (पूरी तरह से अमान्य सुझावों के उत्तर देने से पहले)। NZ() नल के लिए फ़ंक्शन टेस्ट और नल को रिक्त स्ट्रिंग के साथ बदलता है, एक शून्य या वैकल्पिक रूप से वह मान जो उपयोगकर्ता प्रवेश करता है।

कोल्सिस भी करीब नहीं आती है, असल में यह एक शून्य देता है अगर कोई 'सूची ???' में कोई भी शून्य मान नहीं देता है

IFNULL() फ़ंक्शन वह है जिसे आप ढूंढ रहे हैं। करता है

http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html

+2

COALESCE के साथ विचार यह है कि आप अंतिम मान को अपना डिफ़ॉल्ट गैर-शून्य मान बनाते हैं: COALESCE (MightBeNull, MightAlsoBeNull, CanBeNull, 'DefaultValue') ... – diamondsea

+0

यहां, ठीक है! और मैं जोड़ सकता हूं, कि nz() को किसी सूची की आवश्यकता नहीं है। यह किसी भी तत्व से छुटकारा पाने के लिए एक तत्व पर काम कर सकता है, और शून्य या "" वापस कर सकता है। यह नल से निपटने के लिए एक अच्छा उपकरण है। Coalesce एक ही काम नहीं करता है, और इसके शीर्ष पर यदि 2 पैरामीटर के साथ प्रयोग किया जाता है तो स्पष्ट रूप से शब्दशः और गुंजाइश है। यानी आप Coalesce (x) नहीं कर सकते हैं। लेकिन आप nz (x) कर सकते हैं। –

2

COALESCE, बस क्या ओपी लिए पूछ रहा है करता है IFNULL:

:

SELECT Nz(MightBeNullVar, 0) FROM ... (MS Access version) 
SELECT COALESCE(MightBeNullVar, 0) FROM ... (MySQL version) 
SELECT IFNULL(MightBeNullVar, 0) FROM ... (MySQL version) 

अंतर COALESCE कई चर के माध्यम से खोज और लौटने वाले पहले गैर-अशक्त एक कर सकते हैं

SELECT COALESCE(MightBeNullVar, MightAlsoBeNullVar, CouldBeNullVar, 0) FROM ... (MySQL version) 

इनमें से प्रत्येक एक 0 (शून्य) लौटाएगा यदि किसी भी मान में सेट मान (शून्य नहीं है)।

IFNULL (सुंदर अर्थहीन) तेज है। IFNULL बनाम कोल्सिस मुद्दों से परेशान होने से पहले आपकी क्वेरी में ऑप्टिमाइज़ करने के लिए शायद अन्य बेहतर चीजें हैं। यदि आपके पास जांच करने के लिए कई चीजें हैं, तो COALESCE का उपयोग करें। यदि आपके पास जांचने के लिए केवल एक ही मूल्य है, तो IFNULL का उपयोग करें।

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