Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में अस्थायी कॉलम कैसे जोड़ें जहां मान दूसरे कॉलम पर निर्भर हों?

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 उन पंक्तियों के लिए डिफ़ॉल्ट मान प्रदान करता है जो किसी भी शर्त से मेल नहीं खातीं। यह अस्थायी कॉलम केवल क्वेरी परिणाम में मौजूद होता है और तालिका में स्थायी रूप से संग्रहीत नहीं होता।

  1. - MySQL में बूलियन कॉलम के आधार पर रो कॉनकैटिनेट करना

    GROUP_CONCAT() से बूलियन ग्रुपिंग के साथ कॉनकैटिनेशन किसी बूलियन कॉलम के मान (TRUE/FALSE) के आधार पर दूसरे कॉलम के मानों को कॉमा-सेपरेटेड स्ट्रिंग में जोड़ने के लिए GROUP_CONCAT() फंक्शन का उपयोग करें। टेबल बनाना और डेटा इन्सर्ट करना CREATE TABLE DemoTable ( Id INT NOT NULL AUTO_INCREMENT PRIMA

  1. - MySQL में एक टेबल से डेटा चुनना जहाँ कॉलम मान दूसरी टेबल से मेल खाएँ

    EXISTS सबक्वेरी से क्रॉस-टेबल मिलान EXISTS सबक्वेरी का उपयोग करके एक टेबल की पंक्तियाँ चुनें जहाँ कॉलम मान दूसरी टेबल के कॉलम मान से मेल खाता हो। पहली टेबल (विषय) (111, MySQL), (112, MongoDB), (113, Java), (114, C), (115, MySQL); दूसरी टेबल (छात्र) (Chris, MySQL), (Bob, MySQL), (Sam, MySQL), (C

  1. - MySQL में डुप्लिकेट मानों के आधार पर दूसरे कॉलम का योग कैसे करें?

    MySQL में GROUP BY और SUM() का उपयोग करके एक कॉलम में डुप्लिकेट मानों के आधार पर दूसरे कॉलम के मानों का योग निकाला जा सकता है। उदाहरण परिदृश्य नाम के अनुसार समूहित करके प्रत्येक व्यक्ति का कुल मान प्राप्त करना। तालिका और डेटा mysql> CREATE TABLE DemoTable (Name VARCHAR(20), Value INT); mysql>