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

वर्चर मान 'सरल' को डेटा प्रकार int . में कनवर्ट करते समय रूपांतरण विफल रहा

ऐसी त्रुटि से बचने के लिए आप CASE . का उपयोग कर सकते हैं + ISNUMERIC परिदृश्यों को संभालने के लिए जब आप int में कनवर्ट नहीं कर सकते हैं।
बदलें

CONVERT(INT, CONVERT(VARCHAR(12), a.value))

करने के लिए

CONVERT(INT,
        CASE
        WHEN IsNumeric(CONVERT(VARCHAR(12), a.value)) = 1 THEN CONVERT(VARCHAR(12),a.value)
        ELSE 0 END) 

मूल रूप से यह कह रहा है कि यदि आप मुझे 0 (मेरे उदाहरण में) के int असाइन मान में परिवर्तित नहीं कर सकते हैं

वैकल्पिक रूप से आप एक कस्टम फ़ंक्शन बनाने के बारे में इस आलेख को देख सकते हैं जो जांच करेगा कि a.value संख्या है:http://www.tek-tips.com/faqs.cfm?fid=6423



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर समानांतर बैकअप पुनर्स्थापना -1

  2. SQL सर्वर में कस्टम दिनांक/समय स्वरूपण

  3. कुल कार्य के बिना TSQL धुरी

  4. SQL सर्वर में सिमेंटिक सर्च का उपयोग कैसे करें

  5. PIVOT में 0 आउटपुट के साथ (null) मानों को कैसे बदलें?