Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Memeriksa validasi numerik

Ekspresi Anda valid, saya menduga Anda mendapatkan nilai yang dianggap numerik oleh fungsi, tetapi tidak dapat dikonversi ke bilangan bulat. Coba yang berikut ini...

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

Pernyataan konversi akan meledak dengan kesalahan yang Anda laporkan...

Lihat pertanyaan ini:T-sql - tentukan apakah nilainya adalah bilangan bulat

Beberapa contoh nilai "Numerik" lainnya yang tidak dapat dikonversi ke bilangan bulat

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

Tambahkan convert(int,myField) select pilih di begin/end untuk melihat nilai bidang aktual yang menyebabkan kesalahan terjadi



  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 Inner Join Pada Nilai Null

  2. Cara mengambil prosedur tersimpan, fungsi, tabel yang dijatuhkan di SQL Server 2008

  3. Bagaimana cara mendapatkan catatan pertama dan terakhir per grup di SQL Server 2008?

  4. menyimpan kata sandi di SQL Server

  5. ATAU Operator korsleting di SQL Server