Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एसक्यूएल में अल्पविराम से अलग स्ट्रिंग को कैसे योग करें?

बड़ी मेहनत से आप यह कर सकते हैं। हालांकि, वास्तव में, यह डेटा स्टोर करने का एक बहुत ही खराब तरीका है।

इस भावना में कि कभी-कभी हमें डेटा का उपयोग करना पड़ता है जिसका प्रारूप हमारे नियंत्रण में नहीं होता है:

select id,
       (substring_index(value, ',', 1) +
        substring_index(substring_index(concat(value, ',0'), ',', 2), ',', -1) +
        substring_index(substring_index(concat(value, ',0'), ',', 3), ',', -1) +
        substring_index(substring_index(concat(value, ',0'), ',', 4), ',', -1) +
        substring_index(substring_index(concat(value, ',0'), ',', 5), ',', -1)
       ) as thesum
from t;

नेस्टेड को substring_index() पर कॉल किया जाता है स्ट्रिंग में nth मान प्राप्त करें। concat(value, ',0') उस मामले को संभालना है जहां अभिव्यक्ति से कम मूल्य हैं। इस मामले में, नेस्टेड substring_index() सूची में मदों की संख्या से अधिक n के किसी भी मूल्य के लिए अंतिम मान लौटाएगा। 0 को जोड़ना सूची में यह सुनिश्चित करता है कि यह राशि को प्रभावित नहीं करता है।

SQL Fiddle यहां है ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मुझे MySQL लेनदेन लॉग कहां मिल सकता है?

  2. क्रिप्ट का उपयोग करके हैशिंग पासवर्ड लॉगिन पर काम नहीं करता है यह गलत पास प्रदर्शित करता है

  3. सॉकेट के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता

  4. MySQL संस्करण की जांच कैसे करें

  5. Centos 7 . पर Percona टूलकिट स्थापित और उपयोग करें