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

Comprobación de la validación numérica

Su expresión es válida, sospecho que está obteniendo un valor que la función considera numérico, pero que no se puede convertir en un número entero. Prueba lo siguiente...

declare @myfield varchar(20)
set @myfield='.'
if ISNUMERIC(@myfield)=1
begin
    select CONVERT(int,@myField)
end

La declaración de conversión explotará con el error que está informando...

Consulte esta pregunta:T-sql:determine si el valor es entero

Algunos ejemplos más de valores "numéricos" que no se pueden convertir a un número entero

select '1.e0',ISNUMERIC('1.e0') as IsNum  
union
select '.',ISNUMERIC('.') as IsNum  
union
select '12.31',ISNUMERIC('12.31') as IsNum  

Agregue un convert(int,myField) seleccionado en el begin/end para ver el valor real del campo que causa el error