IF() फंक्शन के साथ कंडीशनल स्ट्रिंग परिणाम
MySQL में IF() फंक्शन का उपयोग करके शर्त के आधार पर अलग-अलग स्ट्रिंग मान लौटाएं।
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeSalary INT
);
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable (EmployeeSalary) VALUES (12000); mysql> INSERT INTO DemoTable (EmployeeSalary) VALUES (20000); mysql> INSERT INTO DemoTable (EmployeeSalary) VALUES (11500); mysql> INSERT INTO DemoTable (EmployeeSalary) VALUES (15500);
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+----+----------------+ | Id | EmployeeSalary | +----+----------------+ | 1 | 12000 | | 2 | 20000 | | 3 | 11500 | | 4 | 15500 | +----+----------------+
सैलरी के आधार पर कर्मचारी प्रकार (इंटर्नशिप/फुलटाइम) निर्धारित करने के लिए क्वेरी:
mysql> SELECT Id,
IF(EmployeeSalary <= 12000, 'Internship Employee', 'FullTime Employee') AS status
FROM DemoTable;
आउटपुट:
+----+---------------------+ | Id | status | +----+---------------------+ | 1 | Internship Employee | | 2 | FullTime Employee | | 3 | Internship Employee | | 4 | FullTime Employee | +----+---------------------+
व्याख्या:
- IF(condition, true_value, false_value): शर्त सत्य होने पर true_value, असत्य होने पर false_value लौटाता है
EmployeeSalary <= 12000- 12000 या उससे कम सैलरी वाले इंटर्नशिप कर्मचारी हैं- Id 1 (12000) और Id 3 (11500) → "Internship Employee"
- Id 2 (20000) और Id 4 (15500) → "FullTime Employee"
IF vs CASE:
-- IF: सरल दो-तरफा शर्त के लिए
IF(salary <= 12000, 'Intern', 'FullTime')
-- CASE: बहु-तरफा शर्तों के लिए
CASE
WHEN salary <= 10000 THEN 'Trainee'
WHEN salary <= 20000 THEN 'Junior'
WHEN salary <= 50000 THEN 'Senior'
ELSE 'Lead'
END
नोट: IF() एक फंक्शन है (एक्सप्रेशन में उपयोग होता है), जबकि IF स्टेटमेंट (फ्लो कंट्रोल) केवल स्टोर्ड प्रोसीजर्स में उपयोग होता है।