SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

SQLite Nullif () कैसे काम करता है

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 मान है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite MAX

  2. SQLCipher को GreenDAO के साथ एकीकृत करना

  3. SQLite तालिका बाधा अद्वितीय और ऑन कॉन्फ्लिक्ट रिप्लेस उपयोग

  4. Android SQLite मल्टीटेबल डेटाबेस डेवलपमेंट

  5. SQLitE डेटाबेस से लोड किया गया डेटा मॉडल वर्ग ArrayList android में सहेजा नहीं जा रहा है