मारियाडीबी 10.3 से, NVL()
IFNULL()
. के लिए एक उपनाम के रूप में इस्तेमाल किया जा सकता है समारोह। इसलिए, दोनों फ़ंक्शन हमें NULL मानों को दूसरे मान से बदलने में सक्षम बनाते हैं।
सिंटैक्स
NVL(expr1,expr2)
अगर expr1
NULL
नहीं है , NVL()
रिटर्न expr1
; अन्यथा यह expr2
returns लौटाता है ।
दिया गया NVL()
IFNULL()
. के लिए एक उपनाम है , हम निम्नलिखित सिंटैक्स का भी उपयोग कर सकते हैं:
IFNULL(expr1,expr2)
उपरोक्त दोनों सिंटैक्स एक ही परिणाम देते हैं।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है जो NULL
. का उपयोग करता है स्थिर:
SELECT NVL( null, 'No Value' );
परिणाम:
No Value
इस मामले में, मैंने NVL()
. का इस्तेमाल किया NULL मान को No Value
से बदलने के लिए ।
यहाँ क्या होता है जब पहला तर्क NULL
नहीं होता है :
SELECT NVL( 'Spicy', 'No Value' );
परिणाम:
Green
इस मामले में, पहला तर्क दिया जाता है, क्योंकि यह NULL
नहीं है ।
डेटाबेस उदाहरण
मान लीजिए कि हम निम्नलिखित क्वेरी चलाते हैं:
SELECT * FROM Employees;
परिणाम:
empId name dept ----- ----- ----- 1 Jess Sales 2 Rohit NULL 3 Zohan Sales 4 Homer NULL
हम देख सकते हैं कि dept
. में दो पंक्तियों में NULL मान हैं कॉलम।
निम्नलिखित क्वेरी में, हम NVL()
use का उपयोग करते हैं NULL मानों को पाठक के लिए अधिक सार्थक मान से बदलने के लिए:
SELECT
empId,
name,
NVL( dept, 'Not yet assigned' ) AS dept
FROM Employees;
परिणाम:
empId name dept ----- ----- ---------------- 1 Jess Sales 2 Rohit Not yet assigned 3 Zohan Sales 4 Homer Not yet assigned
अभिव्यक्ति
पहले तर्क के वर्तमान मूल्य का मूल्यांकन किया जाता है। इसलिए, यदि हम निम्नलिखित की तरह एक अभिव्यक्ति प्रदान करते हैं:
SELECT NVL( 4 * 10, 0 );
हमें यह मिलता है:
40
इसलिए, हमें 4 * 10
नहीं मिलता है अंश। हमें उस अभिव्यक्ति का परिणाम मिलता है (जो इस मामले में 40
. है )।
वही सच है जब व्यंजक का परिणाम NULL
. है :
SELECT NVL( 4 / 0, 0 );
परिणाम:
0.0000
हालाँकि, यह एक खतरनाक उदाहरण है। शून्य एक मूल्य है। NULL
क्या नहीं है।
NULL मान होने पर शून्य लौटाना भ्रामक या पूरी तरह से गलत भी हो सकता है। कल्पना कीजिए कि अगर हम कीमतों से निपट रहे थे। हम शून्य की कीमत के साथ समाप्त हो सकते हैं, जो गलत हो सकता है और व्यवसाय को बहुत अधिक पैसा खर्च करना पड़ सकता है।
ऐसे मामलों में आमतौर पर अधिक सार्थक मूल्य का उपयोग करना बेहतर होता है जो पाठक को बताता है कि कोई मूल्य नहीं है।
उदाहरण:
SELECT NVL( 4 / 0, 'No value' );
परिणाम:
No Value
द IFNULL()
समारोह
जैसा कि बताया गया है, NVL()
IFNULL()
. के लिए एक उपनाम है . इसलिए, हम NVL()
. को बदल सकते हैं IFNULL()
. के साथ उपरोक्त किसी भी उदाहरण में।
उदाहरण:
SELECT IFNULL( 4 / 0, 'No value' );
परिणाम:
No Value