ऐसी त्रुटि से बचने के लिए आप 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