sql >> Databasteknik >  >> RDS >> Sqlserver

Söker efter numerisk validering

Ditt uttryck är giltigt, jag misstänker att du får ett värde som anses vara ett numeriskt värde av funktionen, men som inte kan konverteras till ett heltal. Prova följande...

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

Konverteringssatsen kommer att sprängas med felet som du rapporterar...

Kolla in den här frågan:T-sql – avgör om värdet är heltal

Några fler exempel på "Numeriska" värden som inte kan konverteras till ett heltal

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

Lägg till en utvald convert(int,myField) i begin/end för att se det faktiska fältvärdet som orsakar felet



  1. Rails ActiveRecord - finns det ett sätt att utföra operationer på tabeller utan ett id?

  2. MySQL-tabell som en FIFO/kö

  3. Skapa tabell med datumstämpeln

  4. php:hur man förhindrar SQL-injektion från $_POST