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(सेल्सडेटा, 'उपलब्ध नहीं') बिक्री के रूप में रिपोर्ट से;