MySQL में SELECT क्वेरी के अंदर CASE स्टेटमेंट का उपयोग करके संख्यात्मक मान (जैसे 1/0) को वर्णनात्मक मान (जैसे 'Y'/'N') में बदल सकते हैं।
सिंटैक्स
SELECT *,
CASE
WHEN yourColumn = 1 THEN 'Y'
ELSE 'N'
END AS converted_column
FROM yourTableName;
उदाहरण के साथ समझें
टेबल बनाएं (tinyint फ्लैग):
CREATE TABLE changeValuefrom1toY (
Id INT NOT NULL AUTO_INCREMENT,
isValidAddress TINYINT(1),
PRIMARY KEY(Id)
);
रिकॉर्ड डालें (1 और 0):
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(1);
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(0);
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(1);
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(1);
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(1);
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(0);
INSERT INTO changeValuefrom1toY(isValidAddress) VALUES(1);
सभी रिकॉर्ड देखें:
SELECT * FROM changeValuefrom1toY;
आउटपुट:
+----+----------------+
| Id | isValidAddress |
+----+----------------+
| 1 | 1 |
| 2 | 0 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
| 6 | 0 |
| 7 | 1 |
+----+----------------+
CASE से 1 को 'Y' और 0 को '0' रखें
SELECT *,
CASE
WHEN isValidAddress = 1 THEN 'Y'
ELSE isValidAddress
END AS Answer
FROM changeValuefrom1toY;
परिणाम:
+----+----------------+--------+
| Id | isValidAddress | Answer |
+----+----------------+--------+
| 1 | 1 | Y |
| 2 | 0 | 0 |
| 3 | 1 | Y |
| 4 | 1 | Y |
| 5 | 1 | Y |
| 6 | 0 | 0 |
| 7 | 1 | Y |
+----+----------------+--------+
बेहतर: ELSE में 'N' स्पष्ट करें
SELECT *,
CASE
WHEN isValidAddress = 1 THEN 'Y'
ELSE 'N'
END AS Answer
FROM changeValuefrom1toY;
परिणाम (स्पष्ट Y/N):
+----+----------------+--------+
| Id | isValidAddress | Answer |
+----+----------------+--------+
| 1 | 1 | Y |
| 2 | 0 | N |
| 3 | 1 | Y |
| 4 | 1 | Y |
| 5 | 1 | Y |
| 6 | 0 | N |
| 7 | 1 | Y |
+----+----------------+--------+
CASE के दो रूप
सरल CASE (मान तुलना)
CASE column
WHEN 1 THEN 'Y'
WHEN 0 THEN 'N'
ELSE 'Unknown'
END
खोजा गया CASE (शर्त तुलना) - अधिक लचीला
CASE
WHEN column = 1 THEN 'Y'
WHEN column = 0 THEN 'N'
WHEN column IS NULL THEN 'Unknown'
ELSE 'Invalid'
END
एकाधिक कॉलम ट्रांसफॉर्म
SELECT
id,
CASE status WHEN 1 THEN 'Active' WHEN 0 THEN 'Inactive' ELSE 'Unknown' END AS status_text,
CASE priority WHEN 1 THEN 'High' WHEN 2 THEN 'Medium' ELSE 'Low' END AS priority_text
FROM tasks;
नोट
CASEANSI SQL मानक है - सभी डेटाबेस में काम करता हैELSEवैकल्पिक है; बिना ELSE के NULL लौटाता है- पहली मैचिंग WHEN ही निष्पादित होती है (क्रम महत्वपूर्ण)
- परिणाम का डेटा टाइप सभी THEN/ELSE ब्रांच से निर्धारित होता है