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