SQL NULL Functions

IFNULL(), ISNULL(), COALESCE(), और NVL() जैसे NULL फ़ंक्शंस सीखें

SQL शून्य फ़ंक्शंस

नीचे "उत्पाद" तालिका देखें:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23 NULL
3 Gorgonzola 15.67 9 20

मान लें कि "यूनिट्सऑनऑर्डर" कॉलम वैकल्पिक है और इसमें NULL मान हो सकते हैं।

निम्नलिखित चयन कथन देखें:

SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)
FROM Products;

उपरोक्त उदाहरण में, यदि "यूनिट्सऑनऑर्डर" में से कोई भी मान शून्य है, तो परिणाम शून्य होगा।

समाधान

MySQL

यदि कोई अभिव्यक्ति शून्य है तो MySQL IFNULL() फ़ंक्शन एक प्रतिस्थापन मान लौटाता है:

SELECT ProductName, UnitPrice * 
(UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products;

या COALESCE() फ़ंक्शन का उपयोग करें:

SELECT ProductName, UnitPrice * 
(UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;

SQL Server

यदि कोई अभिव्यक्ति शून्य है तो SQL सर्वर ISNULL() फ़ंक्शन एक प्रतिस्थापन मान लौटाता है:

SELECT ProductName, UnitPrice * 
(UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products;

या COALESCE() फ़ंक्शन का उपयोग करें:

SELECT ProductName, UnitPrice * 
(UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;

MS Access

यदि अभिव्यक्ति शून्य मान है तो MS Access IsNull() फ़ंक्शन TRUE (-1) और अन्यथा FALSE (0) लौटाता है:

SELECT ProductName, UnitPrice * 
(UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder))
FROM Products;

Oracle

Oracle NVL() फ़ंक्शन समान परिणाम प्राप्त करता है:

SELECT ProductName, UnitPrice * 
(UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products;

या COALESCE() फ़ंक्शन का उपयोग करें:

SELECT ProductName, UnitPrice * 
(UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;

कार्यात्मक तुलना

IFNULL()

डेटाबेस: MySQL

उपयोग:यदि पहला तर्क शून्य है तो दूसरा तर्क लौटाता है

IFNULL(expression, alternative)

ISNULL()

डेटाबेस: SQL Server

उपयोग:यदि अभिव्यक्ति शून्य है तो निर्दिष्ट मान लौटाता है

ISNULL(expression, replacement)

NVL()

डेटाबेस: Oracle

उपयोग:यदि पहला तर्क शून्य है तो दूसरा तर्क लौटाता है

NVL(expression, default_value)

COALESCE()

डेटाबेस:सभी महत्वपूर्ण डेटाबेस

उपयोग:सूची में पहला गैर-शून्य मान लौटाता है

COALESCE(val1, val2, val3, ...)

💡सहायता नोट:

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

व्यावहारिक उदाहरण

गणितीय गणना

गणितीय कार्य जिनमें NULL मान होते हैं

- NULL को 0 में परिवर्तित करना उत्पाद का नाम चुनें, मूल्य * कुल के रूप में शून्य (मात्रा, 0) है उत्पादों से;

ग्राहक डेटा

खाली संपर्क जानकारी संभालना

-- बिना फोन वाले ग्राहकों के लिए -- 'कोई फ़ोन नहीं' दिखा रहा है ग्राहक का नाम चुनें, COALESCE (फ़ोन, 'नो फ़ोन') AS संपर्क ग्राहकों से;

रिपोर्ट पीढ़ी

कथनों में NULL मानों को प्रतिस्थापित करना

- बिक्री डेटा में शून्य -- 'उपलब्ध नहीं' के रूप में दिखाया जा रहा है उत्पाद का नाम चुनें, COALESCE(सेल्सडेटा, 'उपलब्ध नहीं') बिक्री के रूप में रिपोर्ट से;

अभ्यास

SQL सर्वर में, NULL मानों को निर्दिष्ट वेरिएबल से बदलने के लिए किस फ़ंक्शन का उपयोग किया जा सकता है?

NVL()
✗ ग़लत! NVL() का उपयोग Oracle डेटाबेस में किया जाता है
ISNULL()
✓ ठीक है! SQL सर्वर में ISNULL() फ़ंक्शन का उपयोग NULL मानों को एक निर्दिष्ट चर के साथ बदलने के लिए किया जाता है
IFNULL()
✗ ग़लत! IFNULL() का उपयोग MySQL डेटाबेस में किया जाता है
COALESCE()
✗ ग़लत! COALESCE() का उपयोग कई डेटाबेस में किया जाता है, लेकिन SQL सर्वर में ISNULL() को प्राथमिकता दी जाती है