Untuk menghindari kesalahan seperti itu, Anda dapat menggunakan CASE
+ ISNUMERIC
untuk menangani skenario saat Anda tidak dapat mengonversi ke int.
Ubah
CONVERT(INT, CONVERT(VARCHAR(12), a.value))
Untuk
CONVERT(INT,
CASE
WHEN IsNumeric(CONVERT(VARCHAR(12), a.value)) = 1 THEN CONVERT(VARCHAR(12),a.value)
ELSE 0 END)
Pada dasarnya ini mengatakan jika Anda tidak dapat mengonversi saya menjadi int, tetapkan nilai 0 (dalam contoh saya)
Atau Anda dapat melihat artikel ini tentang membuat fungsi khusus yang akan memeriksa apakah a.value
adalah nomor:http://www.tek-tips.com/faqs.cfm?fid=6423