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

MySQL में CASE से 1 को 'Y' में बदलें (सेलेक्ट स्टेटमेंट में)

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;

नोट

  • CASE ANSI SQL मानक है - सभी डेटाबेस में काम करता है
  • ELSE वैकल्पिक है; बिना ELSE के NULL लौटाता है
  • पहली मैचिंग WHEN ही निष्पादित होती है (क्रम महत्वपूर्ण)
  • परिणाम का डेटा टाइप सभी THEN/ELSE ब्रांच से निर्धारित होता है
  1. - MySQL में UPPER() और IN() का उपयोग करके केस-असंवेदनशील SELECT करना

    MySQL में केस-असंवेदनशील IN() क्वेरी डिफ़ॉल्ट रूप से, MySQL स्ट्रिंग तुलना कॉलेशन पर निर्भर करती है। IN() के साथ स्पष्ट केस-असंवेदनशील मिलान के लिए, तुलना से पहले दोनों पक्षों पर UPPER() या LOWER() लागू करें। उदाहरण: नाम फ़िल्टरिंग SELECT * FROM DemoTable1460; +--------+ | Name | +--------+ | Ch

  1. - MySQL में SELECT स्टेटमेंट के अंदर CASE स्टेटमेंट का उपयोग कैसे करें?

    MySQL में CASE WHEN का उपयोग करके सशर्त तर्क MySQL में CASE WHEN अभिव्यक्ति आपको SQL क्वेरीज़ के अंदर सशर्त तर्क (if-else तर्क) लागू करने की अनुमति देती है। यह SELECT, WHERE, ORDER BY, GROUP BY आदि में उपयोग किया जा सकता है। टेबल बनाना ); Query OK, 0 rows affected (0.63 sec) डेटा डालना INSERT IN

  1. - MySQL में CASE WHEN से खाली मान के लिए कस्टम नाम प्रदर्शित करें

    MySQL में CASE WHEN स्टेटमेंट का उपयोग करके खाली स्ट्रिंग या NULL मान के लिए कस्टम डिफ़ॉल्ट नाम प्रदर्शित कर सकते हैं। उदाहरण: खाली नाम के लिए Carol Taylor दिखाएं 1. टेबल बनाएं CREATE TABLE DemoTable (Name VARCHAR(20)); 2. डेटा डालें (खाली स्ट्रिंग सहित) INSERT INTO DemoTable VALUES(); --