MySQL में IF() फ़ंक्शन का उपयोग करके शर्ती अभिव्यक्ति के आधार पर नया परिकलित कॉलम (पास/फेल स्थिति) उत्पन्न करें।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(100),
-> Subject VARCHAR(100),
-> Score INT
-> );
Query OK, 0 rows affected (0.94 sec)
mysql> INSERT INTO DemoTable(Name, Subject, Score) VALUES
-> ('Chris', 'MySQL', 80),
-> ('Robert', 'MongoDB', 45),
-> ('Adam', 'Java', 78);
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+----+--------+---------+-------+ | Id | Name | Subject | Score | +----+--------+---------+-------+ | 1 | Chris | MySQL | 80 | | 2 | Robert | MongoDB | 45 | | 3 | Adam | Java | 78 | +----+--------+---------+-------+ 3 rows in set (0.00 sec)
IF() के साथ पास/फेल स्थिति जोड़ना
mysql> SELECT Name, Subject, Score, IF(Score > 75, 'PASS', 'FAIL') AS Status FROM DemoTable;
आउटपुट
+--------+---------+-------+--------+ | Name | Subject | Score | Status | +--------+---------+-------+--------+ | Chris | MySQL | 80 | PASS | | Robert | MongoDB | 45 | FAIL | | Adam | Java | 78 | PASS | +--------+---------+-------+--------+ 3 rows in set (0.00 sec)
IF() सिंटैक्स: IF(condition, value_if_true, value_if_false)
CASE एक्सप्रेशन (अधिक जटिल शर्तों के लिए):
SELECT Name, Subject, Score,
CASE
WHEN Score >= 90 THEN 'A+'
WHEN Score >= 75 THEN 'PASS'
WHEN Score >= 50 THEN 'AVERAGE'
ELSE 'FAIL'
END AS Grade
FROM DemoTable;
नोट: IF() एक फ़ंक्शन है (मान लौटाता है), जबकि IF ... THEN ... END IF स्टोर्ड प्रोग्राम में उपयोग होने वाला फ्लो कंट्रोल स्टेटमेंट है।