MySQL में CASE स्टेटमेंट का उपयोग करके आप एक अस्थायी कॉलम बना सकते हैं जिसका मान किसी अन्य कॉलम के मान पर आधारित हो। यह क्वेरी परिणाम में गणना किए गए फ़ील्ड जोड़ने के लिए उपयोगी है बिना तालिका संरचना को बदले।
उदाहरण तालिका बनाना
mysql> CREATE TABLE DemoTable (
EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeName VARCHAR(20),
EmployeeSalary INT,
EmployeeExperience INT
);
नमूना डेटा डालना
mysql> INSERT INTO DemoTable (EmployeeName, EmployeeSalary, EmployeeExperience) VALUES ('Larry', 4500, 5);
mysql> INSERT INTO DemoTable (EmployeeName, EmployeeSalary, EmployeeExperience) VALUES ('Mike', 130000, 8);
mysql> INSERT INTO DemoTable (EmployeeName, EmployeeSalary, EmployeeExperience) VALUES ('Sam', 11000, 5);
mysql> INSERT INTO DemoTable (EmployeeName, EmployeeSalary, EmployeeExperience) VALUES ('Carol', 140000, 8);
मौजूदा डेटा देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+------------+--------------+----------------+--------------------+ | EmployeeId | EmployeeName | EmployeeSalary | EmployeeExperience | +------------+--------------+----------------+--------------------+ | 1 | Larry | 4500 | 5 | | 2 | Mike | 130000 | 8 | | 3 | Sam | 11000 | 5 | | 4 | Carol | 140000 | 8 | +------------+--------------+----------------+--------------------+
CASE स्टेटमेंट के साथ अस्थायी कॉलम जोड़ना
mysql> SELECT EmployeeId, EmployeeName, EmployeeSalary, EmployeeExperience,
-> CASE
-> WHEN EmployeeExperience = 5 THEN EmployeeSalary + 10000
-> WHEN EmployeeExperience = 8 THEN EmployeeSalary + 20000
-> ELSE NULL
-> END AS NewSalary
-> FROM DemoTable;
आउटपुट:
+------------+--------------+----------------+--------------------+-----------+ | EmployeeId | EmployeeName | EmployeeSalary | EmployeeExperience | NewSalary | +------------+--------------+----------------+--------------------+-----------+ | 1 | Larry | 4500 | 5 | 14500 | | 2 | Mike | 130000 | 8 | 150000 | | 3 | Sam | 11000 | 5 | 21000 | | 4 | Carol | 140000 | 8 | 160000 | +------------+--------------+----------------+--------------------+-----------+
मुख्य बिंदु: CASE स्टेटमेंट शर्तों का मूल्यांकन करता है और पहली मेल खाने वाली शर्त के लिए परिणाम लौटाता है। ELSE NULL उन पंक्तियों के लिए डिफ़ॉल्ट मान प्रदान करता है जो किसी भी शर्त से मेल नहीं खातीं। यह अस्थायी कॉलम केवल क्वेरी परिणाम में मौजूद होता है और तालिका में स्थायी रूप से संग्रहीत नहीं होता।