sql >> Database >  >> RDS >> Sqlserver

Controleren op numerieke validatie

Uw uitdrukking is geldig, ik vermoed dat u een waarde krijgt die door de functie als een numeriek wordt beschouwd, maar niet kan worden geconverteerd naar een geheel getal. Probeer het volgende...

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

De convert-instructie zal ontploffen met de fout die je rapporteert...

Bekijk deze vraag:T-sql - bepaal of waarde is geheel getal

Nog enkele voorbeelden van "Numerieke" waarden die niet kunnen worden geconverteerd naar een geheel getal

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

Voeg een select convert(int,myField) . toe in de begin/end om de werkelijke veldwaarde te zien die de fout veroorzaakt



  1. Bestaande PHP/MYSQL/-website converteren naar native IOS/Android-apps

  2. Unieke combinatie van twee kolommen in mysql of postgres

  3. PDO kan geen externe mysql-server verbinden

  4. PostgreSQL Bitwise-operators met bitvariatie kunnen EN-bitreeksen van verschillende groottes niet