CASE WHEN में बहु-शर्त OR लॉजिक
MySQL CASE एक्सप्रेशन में OR जैसी कंडीशन के लिए प्रत्येक WHEN क्लॉज में अलग-अलग शर्तें लिखें, या OR ऑपरेटर का उपयोग करें।
उदाहरण: स्कोर के आधार पर प्रदर्शन श्रेणी
टेबल बनाएं:
mysql> CREATE TABLE caseOrConditionDemo (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(100), Score INT
-> );
डेटा इन्सर्ट करें:
mysql> INSERT INTO caseOrConditionDemo(Name, Score) VALUES('Larry', 85), ('Sam', 74), ('Mike', 76), ('Carol', 65);
सभी रिकॉर्ड:
+----+-------+-------+ | Id | Name | Score | +----+-------+-------+ | 1 | Larry | 85 | | 2 | Sam | 74 | | 3 | Mike | 76 | | 4 | Carol | 65 | +----+-------+-------+
CASE एक्सप्रेशन में कंडीशनल लॉजिक
mysql> SELECT Id, Name, Score,
-> CASE
-> WHEN Score > 75 THEN 'Better Score'
-> WHEN Score > 70 THEN 'Good Score'
-> ELSE 'Not Good Score'
-> END AS 'Performance'
-> FROM caseOrConditionDemo;
परिणाम:
+----+-------+-------+----------------+ | Id | Name | Score | Performance | +----+-------+-------+----------------+ | 1 | Larry | 85 | Better Score | | 2 | Sam | 74 | Good Score | | 3 | Mike | 76 | Better Score | | 4 | Carol | 65 | Not Good Score | +----+-------+-------+----------------+
OR जैसी कंडीशन के लिए:
-- सरल CASE (तुलना एक्सप्रेशन के साथ)
CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
ELSE default_result
END
-- खोजा गया CASE (बूलियन एक्सप्रेशन के साथ) - अधिक लचीला
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE default_result
END
नोट: CASE क्रमिक मूल्यांकन करता है - पहली मैचिंग WHEN का परिणाम लौटाता है।