Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Проверка за цифрово валидиране

Вашият израз е валиден, подозирам, че получавате стойност, която се счита за числова от функцията, но не може да бъде преобразувана в цяло число. Опитайте следното...

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

Изявлението за преобразуване ще избухне с грешката, която докладвате...

Вижте този въпрос:T-sql - определете дали стойността е цяло число

Още няколко примера за „числови“ стойности, които не могат да бъдат преобразувани в цяло число

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

Добавете избран convert(int,myField) в begin/end за да видите действителната стойност на полето, причиняваща възникването на грешката



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да филтрирате обекти в SQL Server Management Studio (SSMS) - SQL Server / TSQL урок, част 19

  2. Изпълнете db заявка (sql сървър 2005) с ajax. Възможно ли е?

  3. Как да свържа низ в SQL

  4. Плюсове и минуси на използването на SqlCommand Prepare в C#?

  5. как да получа данни за текущата седмица само в SQL сървър?