MySQL में, ISNULL()
फ़ंक्शन हमें यह जांचने में सक्षम बनाता है कि कोई मान null
है या नहीं या नहीं। अगर यह null
है , फिर 1
लौटा दिया जाता है, अन्यथा 0
लौटा दिया गया है।
सिंटैक्स
ISNULL(expr)
उदाहरण
प्रदर्शित करने के लिए यहां एक सरल उदाहरण दिया गया है:
SELECT ISNULL( null );
परिणाम:
1
इस मामले में, व्यंजक null
है और इसलिए आउटपुट 1
. है ।
यहाँ यह एक गैर-null
. के साथ है मूल्य:
SELECT ISNULL( 'Cake' );
परिणाम:
0
इस बार परिणाम 0
. है (क्योंकि व्यंजक null
नहीं है )।
अभिव्यक्ति
ISNULL()
किसी भी अभिव्यक्ति के परिणाम की जाँच करता है। इसलिए यदि हम निम्न कार्य करते हैं, उदाहरण के लिए:
SELECT ISNULL( 3 / 0 );
हमें यह मिलता है:
1
इसलिए हालांकि हमने null
. निर्दिष्ट नहीं किया है तर्क के रूप में, व्यंजक का परिणाम null
है , और इसलिए ISNULL()
रिटर्न 1
।
इसे अगले उदाहरण से और अधिक स्पष्ट रूप से प्रदर्शित किया जा सकता है:
SELECT
3 / 0,
ISNULL( 3 / 0 );
परिणाम:
+-------+-----------------+ | 3 / 0 | ISNULL( 3 / 0 ) | +-------+-----------------+ | NULL | 1 | +-------+-----------------+ 1 row in set, 2 warnings (0.00 sec)
पहले कॉलम में हम देख सकते हैं कि गणना के परिणामस्वरूप एक शून्य मान आया, और इसलिए दूसरा कॉलम 1
वापस आ गया। ।
जब हम इस पर काम कर रहे होते हैं, तब ये चेतावनियां दी जाती हैं:
SHOW WARNINGS
परिणाम:
+---------+------+---------------+ | Level | Code | Message | +---------+------+---------------+ | Warning | 1365 | Division by 0 | | Warning | 1365 | Division by 0 | +---------+------+---------------+
हमें चेतावनी दी गई है कि हमने शून्य से विभाजित करने का प्रयास किया (जिसके परिणामस्वरूप एक शून्य मान होता है)।
डेटाबेस उदाहरण
मान लीजिए हमारे पास इस तरह की एक डेटाबेस तालिका है:
SELECT * FROM Pets;
परिणाम:
+-------+-----------+---------+---------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | +-------+-----------+---------+---------+------------+ | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | | 9 | 3 | 1 | Woof | 2020-10-03 | | 10 | 4 | 5 | Ears | 2022-01-11 | +-------+-----------+---------+---------+------------+
यहां एक क्वेरी है जो ISNULL()
. का उपयोग करती है उस तालिका के विरुद्ध कार्य करें:
SELECT
PetId,
PetName,
ISNULL( DOB ) AS "DOB is Missing?"
FROM Pets;
परिणाम:
+-------+---------+-----------------+ | PetId | PetName | DOB is Missing? | +-------+---------+-----------------+ | 1 | Fluffy | 0 | | 2 | Fetch | 0 | | 3 | Scratch | 0 | | 4 | Wag | 0 | | 5 | Tweet | 0 | | 6 | Fluffy | 0 | | 7 | Bark | 1 | | 8 | Meow | 1 | | 9 | Woof | 0 | | 10 | Ears | 0 | +-------+---------+-----------------+
उस स्थिति में, हमने एक कॉलम बनाया जो 1
. प्रदर्शित करता है उन सभी पालतू जानवरों के लिए जिनके जन्म तिथि कॉलम में कुछ भी नहीं है।
मान लें कि हम उन सभी पालतू जानवरों को वापस करना चाहते हैं जिनकी जन्म तिथि सूचीबद्ध नहीं है (अर्थात उनका DOB
फ़ील्ड null
है ) इस मामले में, हम निम्न कार्य कर सकते हैं:
SELECT * FROM Pets
WHERE ISNULL(DOB) = 1;
परिणाम:
+-------+-----------+---------+---------+------+ | PetId | PetTypeId | OwnerId | PetName | DOB | +-------+-----------+---------+---------+------+ | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +-------+-----------+---------+---------+------+
यह निम्न कार्य करने जैसा ही परिणाम देता है:
SELECT * FROM Pets
WHERE DOB IS NULL;
परिणाम:
+-------+-----------+---------+---------+------+ | PetId | PetTypeId | OwnerId | PetName | DOB | +-------+-----------+---------+---------+------+ | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +-------+-----------+---------+---------+------+