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

Mengapa ISNUMERIC('.') mengembalikan 1?

Lihat IsNumeric() Rusak? Hanya sampai titik tertentu.

SELECT CAST('.' AS MONEY) 

mengembalikan 0.00 (meskipun pemeran gagal untuk int dan float )

ISNUMERIC hanya memeriksa bahwa nilainya dapat diberikan ke salah satu tipe data numerik yang umumnya tidak berguna. Biasanya Anda ingin tahu apakah itu dapat dilemparkan ke jenis tertentu.

Selain itu bahkan tampaknya tidak melakukan tugas itu dengan benar untuk semua input yang mungkin.. ISNUMERIC(' ') mengembalikan 0 meskipun casting berhasil ke int dan uang. Sebaliknya ISNUMERIC(N'8') mengembalikan 1 tetapi tidak berhasil mentransmisikan apa pun yang saya coba.

Beberapa fungsi pembantu yang berguna untuk itu ada di sini IsNumeric, IsInt, IsNumber.

SQL Server 2012 memperkenalkan TRY_PARSE dan TRY_CONVERT yang sangat membantu dalam hal ini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MASUKKAN NILAI YANG TIDAK ADA

  2. Cara Menggunakan Pencarian Semantik di SQL Server

  3. Mentransfer data dari satu database ke database lain

  4. Apakah mungkin untuk mengeksekusi file teks dari kueri SQL?

  5. Mengapa server sql menyimpan karakter tanda tanya alih-alih karakter Jepang di bidang NVarchar?