SQLite में nullif()
नामक एक फंक्शन होता है और एक अन्य फ़ंक्शन जिसे ifnull()
. कहा जाता है , जिनमें से प्रत्येक एक अलग उद्देश्य की पूर्ति करता है।
nullif()
आपको कुछ मानों को NULL के रूप में मानने की अनुमति देता है। आप इसे "वापसी NULL अगर ..." के रूप में सोच सकते हैं।ifnull()
आपको NULL मानों को किसी अन्य मान से बदलने की अनुमति देता है। आप इसे "अगर NULL, तो ..." के रूप में सोच सकते हैं।
तो वे मूल रूप से एक दूसरे के विपरीत करते हैं। एक NULL मान को दूसरे मान से बदल देता है, और दूसरा दूसरे मान को NULL से बदल देता है।
उदाहरण
कुछ मामलों में, दोनों फ़ंक्शन एक ही परिणाम लौटा सकते हैं। उदाहरण के लिए:
SELECT
nullif(1, 2),
ifnull(1, 2);
परिणाम:
nullif(1, 2) ifnull(1, 2) ------------ ------------ 1 1
nullif()
फ़ंक्शन अपने पहले तर्क की एक प्रति देता है यदि तर्क अलग हैं और यदि तर्क समान हैं तो NULL। इस मामले में, तर्क अलग हैं और यह पहला तर्क देता है।
ifnull()
दूसरी ओर फ़ंक्शन, पहले गैर-नल तर्क की एक प्रति देता है। इस मामले में, दोनों तर्क गैर-शून्य थे और इसलिए पहला तर्क वापस कर दिया गया था।
निम्नलिखित उदाहरण से, हम इन दो कार्यों के बीच अंतर देखना शुरू करते हैं:
SELECT
nullif(1, 1),
ifnull(1, 1);
परिणाम:
nullif(1, 1) ifnull(1, 1) ------------ ------------ 1
nullif()
फ़ंक्शन NULL देता है जब दोनों तर्क समान थे। इस मामले में दोनों तर्क समान थे, और इसलिए nullif()
अपना काम किया और NULL लौटाया।
ifnull()
फ़ंक्शन पहला गैर-नल तर्क देता है, और इसलिए इस मामले में, यह पहला तर्क देता है।
तथ्य यह है कि दोनों तर्क समान हैं इसका मतलब ifnull()
. के लिए कुछ भी नहीं है . यह केवल पहला गैर-नल तर्क देता है। ऐसा कहने के बाद, यदि दोनों तर्क NULL हैं तो यह NULL देता है।
आइए कुछ NULLs जोड़ने का प्रयास करें।
SELECT
nullif(NULL, 1),
ifnull(NULL, 1);
परिणाम:
nullif(NULL, 1) ifnull(NULL, 1) --------------- --------------- 1
इस मामले में, nullif()
NULL लौटा क्योंकि NULL पहला तर्क है (याद रखें कि nullif()
यदि दोनों तर्क भिन्न हैं तो अपना पहला तर्क देता है)।
ifnull()
दूसरी ओर अपना पहला गैर-नल तर्क लौटाया।
अगर हम तर्कों को इधर-उधर कर दें तो यह कैसा दिखता है।
SELECT
nullif(1, NULL),
ifnull(1, NULL);
परिणाम:
nullif(1, NULL) ifnull(1, NULL) --------------- --------------- 1 1
दोनों तर्क अलग हैं और इसलिए nullif()
पहला तर्क देता है।
पहला तर्क NULL नहीं है और इसलिए ifnull()
लौटाता है।