MySQL CASE स्टेटमेंट: सशर्त तर्क के लिए
CASE स्टेटमेंट का उपयोग निश्चित संख्या में शर्तों के लिए करें। यह IF-ELSE लॉजिक को SQL में लागू करता है।
सिंटैक्स
SELECT *,
CASE
WHEN yourColumnName1 > yourColumnName2 THEN 'message1'
ELSE 'message2'
END AS aliasName
FROM yourTableName;
उदाहरण: टेबल और डेटा
mysql> create table CaseFunctionDemo (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Value1 int,
-> Value2 int
-> );
Query OK, 0 rows affected (0.56 sec)
mysql> insert into CaseFunctionDemo(Value1,Value2) values(10,20); mysql> insert into CaseFunctionDemo(Value1,Value2) values(100,40); mysql> insert into CaseFunctionDemo(Value1,Value2) values(0,20); mysql> insert into CaseFunctionDemo(Value1,Value2) values(0,-50);
CASE क्वेरी और परिणाम
mysql> SELECT *,
-> CASE WHEN Value1 > Value2 THEN 'Value1 is Greater'
-> ELSE 'Value2 is Greater'
-> END AS Comparison
-> FROM CaseFunctionDemo;
+----+--------+--------+-------------------+ | Id | Value1 | Value2 | Comparison | +----+--------+--------+-------------------+ | 1 | 10 | 20 | Value2 is Greater | | 2 | 100 | 40 | Value1 is Greater | | 3 | 0 | 20 | Value2 is Greater | | 4 | 0 | -50 | Value1 is Greater | +----+--------+--------+-------------------+
CASE के दो रूप
1. सरल CASE (मान तुलना)
CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
ELSE default_result
END
2. खोजा गया CASE (शर्त तुलना) - ऊपर दिखाया गया
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE default_result
END
उपयोग के मामले
- डेटा वर्गीकरण/लेबलिंग
- सशर्त गणना
- रिपोर्ट में मान बदलना
- जटिल WHERE/ORDER BY लॉजिक