अधिकांश प्रमुख डीबीएमएस हमें शून्य मानों को दूसरे मान से बदलने के लिए एक फ़ंक्शन प्रदान करते हैं।
लेकिन फ़ंक्शन का नाम डीबीएमएस में भिन्न होता है। उदाहरण के लिए, SQL सर्वर में एक ISNULL() है फ़ंक्शन, जबकि अन्य (जैसे MySQL, MariaDB, और SQLite) में एक IFNULL() होता है एक ही काम करने के लिए कार्य करें।
हालांकि, मामलों को भ्रमित करने के लिए, MySQL और MariaDB प्रत्येक के पास एक ISNULL() . है फ़ंक्शन जो एक ही नाम के SQL सर्वर के फ़ंक्शन के लिए अलग तरह से काम करता है (MySQL और MariaDB का कार्यान्वयन केवल एक ही तर्क को स्वीकार करता है, और 1 लौटाता है। अगर इसका null . है और 0 अगर यह नहीं है)।
वैसे भी, Oracle डेटाबेस के मामले में, हम NVL() . का उपयोग कर सकते हैं शून्य मानों को दूसरे मान से बदलने के लिए कार्य करता है।
दरअसल, Oracle डाटाबेस में एक NVL2() भी होता है फ़ंक्शन जो हमें इस घटना में उपयोग करने के लिए एक और मान प्रदान करने की अनुमति देता है कि पहला तर्क null नहीं है ।
यदि हम केवल यह जांचना चाहते हैं कि कोई मान null है या नहीं या नहीं, हम उपयोग कर सकते हैं IS NULL शर्त (या IS NOT NULL विपरीत परीक्षा के लिए)।
द NVL() समारोह
यहां एक उदाहरण दिया गया है जो दर्शाता है कि कैसे NVL() फ़ंक्शन काम करता है:
SELECT NVL(null, 'Run')
FROM DUAL; परिणाम:
Run
उस स्थिति में, पहला तर्क null . था और इसलिए दूसरा तर्क वापस कर दिया गया।
यहाँ क्या होता है जब पहला तर्क null नहीं होता है :
SELECT NVL('Walk', 'Run')
FROM DUAL; परिणाम:
Walk
पहला तर्क वापस कर दिया गया है।
द NVL2() समारोह
जैसा कि उल्लेख किया गया है, Oracle डेटाबेस हमें NVL2() . भी प्रदान करता है समारोह। यह फ़ंक्शन हमें इस घटना में उपयोग करने के लिए एक और मान प्रदान करने की अनुमति देता है कि पहला तर्क null नहीं है ।
यह कैसे काम करता है इसका एक उदाहरण यहां दिया गया है:
SELECT NVL2(null, 2, 3)
FROM DUAL; परिणाम:
3
पहला तर्क था null और इसलिए तीसरा तर्क वापस कर दिया गया।
यहाँ क्या होता है जब पहला तर्क null नहीं होता है :
SELECT NVL2(1, 2, 3)
FROM DUAL; परिणाम:
2
दूसरा तर्क वापस कर दिया गया है।
द IS NULL और IS NOT NULL शर्तें
अगर हम सिर्फ यह पता लगाना चाहते हैं कि कोई मान null है या नहीं , हम उपयोग कर सकते हैं IS NULL तुलना की स्थिति। हम वैकल्पिक रूप से उपयोग कर सकते हैं IS NOT NULL यह जांचने के लिए कि क्या यह null नहीं है ।
मान लीजिए हमारे पास निम्न तालिका है:
SELECT * FROM Autoparts
WHERE Price IS NULL; परिणाम:
| आईडी | ओई# | <थ>कीमतमॉडल | |
|---|---|---|---|
| 2 | 62150B3278 | – | कैमरी |
| 1 | 62150A3278 | 168 | HILUX |
इस मामले में, PRICE कॉलम में पहली पंक्ति के लिए शून्य मान होता है, लेकिन दूसरी पंक्ति के लिए नहीं।
यहां IS NULL का उपयोग करने का एक उदाहरण दिया गया है उस तालिका के विरुद्ध:
SELECT * FROM Autoparts
WHERE Price IS NULL; परिणाम:
| आईडी | ओई# | <थ>कीमतमॉडल | |
|---|---|---|---|
| 2 | 62150B3278 | – | कैमरी |
केवल शून्य मूल्य वाली पंक्ति लौटा दी जाती है।
यहाँ क्या होता है जब हम IS NOT NULL . का उपयोग करते हैं :
SELECT * FROM Autoparts
WHERE Price IS NOT NULL; परिणाम:
| आईडी | ओई# | <थ>कीमतमॉडल | |
|---|---|---|---|
| 1 | 62150A3278 | 168 | HILUX |
दूसरी पंक्ति वापस आ गई है।