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

*varchar* सेल से नंबर निकालें और शुद्ध mysql में उनके साथ गणित करें

यह निश्चित रूप से किया जा सकता है, लेकिन SQL को परमाणु मूल्यों के स्वयंसिद्ध के आसपास डिज़ाइन किया गया है (यानी, प्रथम सामान्य रूप ) किसी क्षेत्र को विभाजित करना लगभग कभी आवश्यक नहीं होता है। केवल उस समय के बारे में जब आपको इसे एक अच्छी तरह से डिज़ाइन किए गए डेटाबेस में उपयोग करने की आवश्यकता होगी, तिथियों के साथ जहां आप किसी दिनांक फ़ील्ड के केवल महीने या वर्ष के साथ काम करना चाहते हैं। जबकि आप निश्चित रूप से ऐसे डेटाबेस पाएंगे कि कुछ बेवकूफ डिज़ाइन किए गए हैं जिनके साथ आप काम करने के लिए मजबूर हैं, जो इस मूल अवधारणा का उल्लंघन करते हैं, इन डिज़ाइनों के साथ काम करने का तरीका जानने का प्रयास करके शुरू करना एक बुरा विचार है।

इसके अतिरिक्त, "उस सेल 239 में स्टोर करें" का आपका अंतिम चरण मुझे लगता है कि आप अभी भी डेटाबेस को देख रहे हैं जैसे वे स्प्रेडशीट हैं। वे नहीं हैं। डेटाबेस का एक अन्य मुख्य घटक यह है कि पंक्तियों का क्रम महत्वपूर्ण नहीं है। दूसरी ओर, फ़ील्ड हमेशा एक ही पंक्ति में अन्य फ़ील्ड से संबंधित होते हैं। आप किसी एक फ़ील्ड का मान कुछ ऐसा सेट कर सकते हैं जहां उस रिकॉर्ड का आईडी फ़ील्ड 239 हो, लेकिन आप आम तौर पर इस तथ्य की परवाह नहीं करेंगे कि एक रिकॉर्ड 239 वां है।

उस ने कहा, यहां एक प्रश्न है जो वह करेगा जो आप चाहते हैं:

अनुमान:फ़ील्ड का प्रारूप "11a22 b" है। यानी, दो अंकों की एक संख्या, उसके बाद एक अक्षर, उसके बाद दूसरी दो अंकों की संख्या, संभवतः उसके बाद एक स्थान और अक्षर 'बी'।

SELECT CAST(SUBSTRING(Value,1,2) AS INT) 
    * CAST(SUBSTRING(Value,3,2) AS INT) 
    + CASE RIGHT(Value,1) WHEN 'b' THEN -1 ELSE 0 END
FROM MyTable


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं अत्यधिक पासवर्ड अनुरोधों के बिना टर्मिनल से कैसे लूप करूं?

  2. हाइबरनेट + डुप्लीकेट कुंजी तर्क पर

  3. एक तारीख संग्रहित करना जहां केवल वर्ष ज्ञात हो सकता है

  4. mysql के साथ अल्पविराम कैसे खोजें find_in_set

  5. एक टेबल में कई रैंक