Menghantar Rentetan kepada Integer dan Mengendalikan Kegagalan Penukaran
Dalam T-SQL, kita mungkin menghadapi senario di mana kita perlu menukar jenis data nvarchar kepada integer tetapi mengendalikan kes di mana penukaran gagal. Satu kaedah untuk mencapai ini adalah melalui gabungan fungsi CAST dan fungsi ISNUMERIC().
Penukaran dengan Nilai Lalai
Untuk menghantar rentetan nvarchar ke integer dan mengembalikan nilai lalai jika penukaran gagal, kita boleh menggunakan pernyataan CASE seperti berikut:
SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE <default value> END
Dalam ini ungkapan:
Contoh
Pertimbangkan contoh berikut:
DECLARE @text AS NVARCHAR(10) SET @text = '100' SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END -- returns 100 SET @text = 'XXX' SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END -- returns NULL
Dalam kes pertama , penukaran berjaya dan 100 dikembalikan. Dalam kes kedua, rentetan 'XXX' tidak boleh ditukar dan NULL dikembalikan sebagai nilai lalai.
Mengendalikan Had ISNUMERIC()
Perlu diperhatikan bahawa ISNUMERIC() mungkin kembali benar untuk beberapa rentetan yang bukan integer yang sah, seperti yang mengandungi simbol mata wang, titik perpuluhan atau /- tanda-tanda. Oleh itu, anda dinasihatkan untuk mengesahkan rentetan dengan lebih teliti sebelum menghantarnya.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Rentetan NVARCHAR dengan Selamat kepada Integer dalam T-SQL dan Mengendalikan Ralat Penukaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!