CASE और CAST से उपनाम का डेटा टाइप नियंत्रित करना
CASE स्टेटमेंट के साथ CAST() का उपयोग करके परिणाम कॉलम का डेटा टाइप स्पष्ट रूप से निर्धारित किया जा सकता है।
तालिका और डेटा
mysql> CREATE TABLE DemoTable1505 (
-> Value INT UNSIGNED,
-> Status TINYINT(1)
-> );
mysql> INSERT INTO DemoTable1505 VALUES(20, 0), (45, 1);
क्वेरी: स्टेटस के आधार पर साइन बदलना
mysql> SELECT CASE Status
-> WHEN 0 THEN CAST(Value AS SIGNED) * 1
-> WHEN 1 THEN CAST(Value AS SIGNED) * -1
-> END AS AllValues
-> FROM DemoTable1505;
परिणाम
+-----------+
| AllValues |
+-----------+
| 20 |
| -45 |
+-----------+
व्याख्या:
UNSIGNEDमान कोSIGNEDमें कास्ट करके नकारात्मक मान सक्षम कियाCASEप्रत्येक पंक्ति के लिए अलग लॉजिक लागू करता है- उपनाम
AllValuesका टाइप परिणाम के अनुसारSIGNEDहो जाता है
अन्य उपयोग: CAST(expr AS DECIMAL(10,2)), CAST(expr AS CHAR), CAST(expr AS DATE) आदि।