MySQL का CASE स्टेटमेंट एक फ्लो कंट्रोल फंक्शन है जो हमें SELECT या WHERE क्लॉज़ जैसे क्वेरी के अंदर शर्तें बनाने की अनुमति देता है। CASE स्टेटमेंट के दो सिंटैक्स होते हैं:
सिंटैक्स-1
CASE val WHEN compare_val1 THEN result1 WHEN compare_val2 THEN result2 ... ELSE result END
इस पहले सिंटैक्स में, यदि val compare_val1 के बराबर है तो CASE स्टेटमेंट result1 लौटाता है। यदि val compare_val2 के बराबर है तो result2 लौटाता है, और इसी तरह आगे।
यदि val किसी भी compare_val से मेल नहीं खाता, तो CASE स्टेटमेंट ELSE क्लॉज़ में निर्दिष्ट result लौटाता है।
उदाहरण
mysql> SELECT CASE 100
-> WHEN 100 THEN 'It is matched'
-> WHEN 200 THEN 'It is not matched'
-> ELSE 'No use of this Number'
-> END AS 'Matching the Number';
+---------------------+
| Matching the Number |
+---------------------+
| It is matched |
+---------------------+
1 row in set (0.06 sec)
सिंटैक्स-2
CASE WHEN condition_1 THEN result1 WHEN condition_2 THEN result2 ... ELSE result END
इस दूसरे सिंटैक्स में, CASE स्टेटमेंट result1, result2, आदि लौटाता है यदि शर्त सत्य है। यदि सभी शर्तें असत्य हैं, तो CASE स्टेटमेंट ELSE क्लॉज़ में निर्दिष्ट result लौटाता है।
उदाहरण
mysql> SELECT CASE
-> WHEN (100 = 100) THEN 'It is Matched'
-> WHEN (200 = 100) THEN 'It is Not Matched'
-> ELSE 'No use of Number'
-> END AS 'Matching the Number';
+---------------------+
| Matching the Number |
+---------------------+
| It is Matched |
+---------------------+
1 row in set (0.00 sec)