एसक्यूएल नल कार्य
SQL IFNULL (), ISNULL (), COALESCE (), और NVL () फ़ंक्शन
निम्नलिखित "उत्पाद" तालिका देखें:
P_Id | ProductName | UnitPrice | UnitsInStock | UnitsOnOrder |
---|---|---|---|---|
1 | Jarlsberg | 10.45 | 16 | 15 |
2 | Mascarpone | 32.56 | 23 | |
3 | Gorgonzola | 15.67 | 9 | 20 |
मान लीजिए कि "UnitsOnOrder" कॉलम वैकल्पिक है, और इसमें NULL मान हो सकते हैं।
निम्नलिखित चयन कथन को देखें:
SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)
FROM Products;
ऊपर के उदाहरण में, यदि कोई भी "UnitsOnOrder" मान NULL है, तो परिणाम NULL होगा।
समाधान
माई एसक्यूएल
यदि कोई व्यंजक NULL है, तो MySQL IFNULL()
फ़ंक्शन आपको एक वैकल्पिक मान वापस करने देता है:
SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products;
या हम इस तरह समारोह का उपयोग कर सकते हैं:
COALESCE()
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;
एस क्यू एल सर्वर
SQL सर्वर
ISNULL()
फ़ंक्शन आपको एक वैकल्पिक मान वापस करने देता है जब कोई व्यंजक NULL होता है:
SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products;
एमएस एक्सेस
MS Access
IsNull()
फ़ंक्शन TRUE (-1) लौटाता है यदि व्यंजक एक शून्य मान है, अन्यथा FALSE (0):
SELECT ProductName, UnitPrice * (UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder))
FROM Products;
आकाशवाणी
Oracle NVL()
फ़ंक्शन समान परिणाम प्राप्त करता है:
SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products;