SQLite nullif()
फ़ंक्शन एक आसान फ़ंक्शन है जो आपको आवश्यकता पड़ने पर कुछ मानों को NULL के रूप में मानने की अनुमति देता है।
इसे ifnull()
. के साथ भ्रमित नहीं होना चाहिए फ़ंक्शन, जो इसके विपरीत करता है - आपको NULL मानों को कुछ और मानने में सक्षम बनाता है।
nullif()
फ़ंक्शन दो तर्कों को स्वीकार करता है, और तर्क अलग होने पर अपना पहला तर्क देता है और यदि तर्क समान हैं तो NULL।
सिंटैक्स
वाक्य रचना इस प्रकार है:
nullif(X,Y)
फ़ंक्शन एक तर्क के लिए अपने तर्कों को बाएं से दाएं खोजता है जो एक कोलाटिंग फ़ंक्शन को परिभाषित करता है और सभी स्ट्रिंग तुलनाओं के लिए उस कोलाटिंग फ़ंक्शन का उपयोग करता है। यदि न तो तर्क एक कोलाटिंग फ़ंक्शन को परिभाषित करता है तो बाइनरी का उपयोग किया जाता है।
उदाहरण
प्रदर्शित करने के लिए यहां एक बुनियादी उदाहरण दिया गया है।
SELECT
nullif(123,0),
nullif(0,0),
nullif(123,123);
परिणाम:
nullif(123,0) nullif(0,0) nullif(123,123) ------------- ----------- --------------- 123
पहले कॉलम में दो मान अलग हैं, इसलिए पहला मान लौटाया जाता है।
दूसरे कॉलम में दोनों मान समान हैं, इसलिए NULL लौटाया जाता है।
तीसरे कॉलम के लिए भी यही सच है - दोनों मान समान हैं, इसलिए NULL वापस आ गया है।
एक व्यावहारिक उदाहरण
यहां एक डेटाबेस उदाहरण दिया गया है जो nullif()
. के लिए अधिक व्यावहारिक उपयोग दर्शाता है समारोह।
उत्पाद called नामक निम्न तालिका लें :
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Widget Stick 89.75 3 Foo Cap 11.99 4 Free Widget 0.0 5 Free Foobar 0.0 6 Free Beer
हम देख सकते हैं कि दो उत्पादों की कीमत शून्य है। एक अन्य उत्पाद की पूरी कीमत है।
अब, कल्पना कीजिए कि हम यह पता लगाना चाहते हैं कि कितने उत्पादों की सकारात्मक कीमत है। दूसरे शब्दों में, हम उन उत्पादों को शामिल नहीं करना चाहते जिनकी कीमत या शून्य (या उस मामले के लिए NULL) है।
ऐसा करने के लिए, हम उपयोग कर सकते हैं nullif()
count()
. के संयोजन के साथ समारोह।
SELECT count(nullif(Price, 0.00))
FROM Products;
परिणाम:
3
हमें उम्मीद के मुताबिक 3 मिलते हैं, यानी कीमत . में कितनी पंक्तियों का सकारात्मक मान होता है कॉलम।
यह काम करता है क्योंकि count()
फ़ंक्शन केवल गैर-शून्य मानों की गणना करता है। शून्य राशियों को NULL में परिवर्तित करके, हम अपनी गणना में उन मानों को अनदेखा कर सकते हैं।
यहाँ यह फिर से nullif()
. के बिना है समारोह।
SELECT count(Price)
FROM Products;
परिणाम:
5
तो इस मामले में, इसमें शून्य राशि शामिल है और हमें 5 मिलता है। यह अभी भी पंक्ति 6 को अनदेखा करता है क्योंकि इसका वास्तव में एक NULL मान है।