एसक्यूएल नल फ़ंक्शन

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

नीचे दिए "Products" तालिका को देखें:

P_Id ProductName UnitPrice UnitsInStock UnitsOnOrder
1 कंप्यूटर 699 25 15
2 प्रिंटर 365 36  
3 टेलिफोन 280 159 57

यदि "UnitsOnOrder" वैकल्पिक है और NULL मूल्य शामिल हो सकता है。

हमने नीचे दिए हुए SELECT स्टेटमेंट का उपयोग किया है:

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

ऊपरी उदाहरण में, यदि "UnitsOnOrder" मान NULL है, तो परिणाम NULL होगा。

माइक्रोसॉफ्ट के ISNULL() फ़ंक्शन का उपयोग NULL मानों को कैसे संभालने के लिए किया जाता है。

NVL(), IFNULL() और COALESCE() फ़ंक्शन भी उसी परिणाम को प्राप्त कर सकते हैं。

यहाँ, हम चाहते हैं कि NULL मान 0 हो।

अभी, यदि "UnitsOnOrder" NULL है, तो यह गणना के लिए अनुकूल नहीं है, इसलिए ISNULL() NULL वाले मान को 0 कर देता है。

SQL Server / MS Access

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

Oracle

Oracle में ISNULL() फ़ंक्शन नहीं है।यद्यपि, हम NVL() फ़ंक्शन का उपयोग करके उसी परिणाम को प्राप्त कर सकते हैं:

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

MySQL

MySQL भी ISNULL() के तरह की फ़ंक्शन रखता है।यद्यपि यह माईक्रोसॉफ्ट के ISNULL() फ़ंक्शन के साथ कुछ अलग काम करता है。

MySQL में, हम IFNULL() फ़ंक्शन का उपयोग कर सकते हैं, इस तरह:

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

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

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