MySQL में किसी कॉलम के NOT NULL मान होने पर 1 और NULL होने पर 0 लौटाने के लिए IF() फंक्शन के साथ IS NOT NULL ऑपरेटर का उपयोग करें। यह डेटा वैलिडेशन, रिपोर्टिंग, और कंडीशनल एग्रीगेशन के लिए उपयोगी है।
बुनियादी सिंटैक्स
SELECT IF('' IS NOT NULL, 1, 0) AS anyAliasName;
आउटपुट: 1 (क्योंकि खाली स्ट्रिंग NULL नहीं है)
टेबल के साथ व्यावहारिक उदाहरण
डेमो टेबल बनाएं:
mysql> CREATE TABLE DemoTable1915 (Name VARCHAR(20));
विभिन्न प्रकार के मान इन्सर्ट करें:
mysql> INSERT INTO DemoTable1915 VALUES
('Chris'), (''), ('David'), (NULL);
डेटा:
+-------+ | Name | +-------+ | Chris | | | -- खाली स्ट्रिंग | David | | NULL | -- वास्तविक NULL +-------+
IF() के साथ क्वेरी:
mysql> SELECT IF(Name IS NOT NULL, 1, 0) AS Result FROM DemoTable1915;
आउटपुट:
+--------+ | Result | +--------+ | 1 | -- Chris (NOT NULL) | 1 | -- खाली स्ट्रिंग (NOT NULL) | 1 | -- David (NOT NULL) | 0 | -- NULL +--------+
महत्वपूर्ण अंतर: खाली स्ट्रिंग vs NULL
- खाली स्ट्रिंग (''): एक मान है, लंबाई 0,
IS NOT NULL= TRUE - NULL: मान की अनुपस्थिति,
IS NOT NULL= FALSE
वैकल्पिक फंक्शन
COALESCE() - पहला नॉन-NULL मान लौटाता है
SELECT COALESCE(Name, 'N/A') FROM DemoTable1915;
IFNULL() - MySQL-विशिष्ट, दो आर्गुमेंट
SELECT IFNULL(Name, 'N/A') FROM DemoTable1915;
NULLIF() - यदि दोनों बराबर हैं तो NULL लौटाता है
SELECT NULLIF(Name, '') FROM DemoTable1915; -- खाली स्ट्रिंग को NULL बनाता है
एग्रीगेशन में उपयोग
-- नॉन-NULL मानों की गिनती
SELECT COUNT(*) AS total,
SUM(IF(Name IS NOT NULL, 1, 0)) AS not_null_count
FROM DemoTable1915;
यह तकनीक डेटा क्वालिटी रिपोर्ट, कंडीशनल सम, और ETL पाइपलाइन्स में वैलिडेशन के लिए आवश्यक है।