TOP

SQL NULL फ़ंक्शंस

SQL फ़ंक्शन IFNULL(), ISNULL(), COALESCE(), और NVL()


आइए निम्नलिखित तालिका देखें "Products" ("उत्पाद"):

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags18.00
2Chang1124 - 12 oz bottles19.00
3Aniseed Syrup1212 - 550 ml bottles10.00
4Chef Anton's Cajun Seasoning2248 - 6 oz jars22.00
5Chef Anton's Gumbo Mix2236 boxes21.35

मान लें कि कॉलम "UnitsOnOrder" वैकल्पिक है और इसमें मान NULL हो सकता है।

निम्नलिखित निर्देश पर विचार करें SELECT:

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

उपरोक्त उदाहरण में, यदि कोई भी "UnitsOnOrder" मान NULL के बराबर है, तो परिणाम NULL होगा।

फ़ैसला

MySQL

यदि अभिव्यक्ति NULL के बराबर है, तो MySQL IFNULL() फ़ंक्शन आपको वैकल्पिक मान वापस करने की अनुमति देता है:

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

या हम उदाहरण के लिए COALESCE() फ़ंक्शन का उपयोग कर सकते हैं:

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

SQL सर्वर

SQL Server ISNULL() फ़ंक्शन आपको एक वैकल्पिक मान वापस करने की अनुमति देता है यदि अभिव्यक्ति का मान NULL है:

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