sql >> Base de Datos >  >> RDS >> Sqlserver

La conversión falló al convertir el valor varchar 'simple,' al tipo de datos int

Para evitar dicho error, puede usar CASE + ISNUMERIC para manejar escenarios cuando no puede convertir a int.
Cambiar

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

a

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

Básicamente, esto significa que si no puede convertirme a int, asigne un valor de 0 (en mi ejemplo)

Alternativamente, puede consultar este artículo sobre la creación de una función personalizada que verificará si a.value es el número:http://www.tek-tips.com/faqs.cfm?fid=6423