sql >> Database teknologi >  >> RDS >> Sqlserver

Kontrollerer for numerisk validering

Dit udtryk er gyldigt, jeg formoder, at du får en værdi, der betragtes som en numerisk af funktionen, men som ikke kan konverteres til et heltal. Prøv følgende...

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

Konverteringserklæringen vil blæse op med den fejl, du rapporterer...

Tjek dette spørgsmål ud:T-sql – afgør om værdien er heltal

Nogle flere eksempler på "Numeriske" værdier, der ikke kan konverteres til et heltal

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

Tilføj en valgt convert(int,myField) i begin/end for at se den faktiske feltværdi, der forårsager fejlen



  1. Hvordan vælger og/eller sletter man alle på nær én række af hvert sæt dubletter i en tabel?

  2. MySQL BESTIL EFTER [brugerdefineret SET-feltværdi]

  3. Datatabeller, der forbinder tabeller, søgning og rækkefølge sidder fast med kodetænder

  4. Benchmarking Managed PostgreSQL Cloud Solutions - Google Cloud:Tredje del