Tengo una columna varchar (100) en una tabla que contiene una mezcla de enteros (como cadenas) y cadenas no enteras. P.ej.SQL Server 2005 Convertir VARCHAR a INT pero predeterminado en tipo no válido
| dimension varchar(100) |
| '5' |
| '17' |
| '3' |
| 'Pyramids' |
| 'Western Bypass' |
| '15' |
¿Cómo puedo escribir una expresión, p. Ej. resumir todos los valores que son enteros válidos? Si tuviera que tratar:
-- should return 5 + 17 + 3 + 15 = 40
SELECT
SUM(CONVERT(INT, dimension))
FROM
mytable
iba a recibir un error de Conversion failed when converting the varchar value 'Pyramids' to data type int.
.
¿Existe alguna prueba que pueda usar en mi expresión, al igual que la función ISNULL()
, que me permite especificar un valor predeterminado si el campo no es un número?
perfecto! ¡Gracias! 'ISNUMERIC ('- 1.44')' y 'ISNUMERIC ('12')' devuelve 1, mientras que 'ISNUMERIC ('foobar')' devuelve 0. Justo lo que necesitaba. –