Om een dergelijke fout te voorkomen, kunt u CASE
. gebruiken + ISNUMERIC
om scenario's af te handelen wanneer u niet kunt converteren naar int.
Wijzigen
CONVERT(INT, CONVERT(VARCHAR(12), a.value))
Naar
CONVERT(INT,
CASE
WHEN IsNumeric(CONVERT(VARCHAR(12), a.value)) = 1 THEN CONVERT(VARCHAR(12),a.value)
ELSE 0 END)
In feite zegt dit dat als je me niet kunt converteren naar int, een waarde van 0 toewijzen (in mijn voorbeeld)
U kunt ook dit artikel bekijken over het maken van een aangepaste functie die controleert of a.value
is nummer:http://www.tek-tips.com/faqs.cfm?fid=6423