Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menghantar Rentetan dengan Selamat kepada Integer dengan Nilai Lalai dalam T-SQL?
Menghantar Rentetan kepada Integer dengan Nilai Lalai dalam T-SQL
Dalam T-SQL, keperluan sering timbul untuk menghantar rentetan (nvarchar ) nilai kepada jenis data integer (int). Walau bagaimanapun, penukaran ini boleh gagal jika rentetan mengandungi aksara bukan angka. Untuk mengendalikan senario sedemikian dengan anggun, adalah perlu untuk mengembalikan nilai lalai atau NULL jika penukaran tidak berjaya.
Untuk mencapai ini, ungkapan CASE, bersama-sama dengan fungsi ISNUMERIC() boleh digunakan. ISNUMERIC() menilai sama ada rentetan mewakili nilai angka yang sah, mengembalikan 1 jika benar dan 0 jika palsu.
Sintaks:
CASE WHEN ISNUMERIC(@variable) = 1 THEN CAST(@variable AS INT) ELSE NULL END
Contoh:
Pertimbangkan perkara berikut contoh:
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, memandangkan '100' ialah integer yang sah, penukaran berjaya, mengembalikan nilai 100. Dalam kes kedua, 'XXX' bukan nilai angka, jadi Fungsi ISNUMERIC() mengembalikan 0, menyebabkan ungkapan CASE kembali NULL.
Pertimbangan:
Perlu diambil perhatian bahawa ISNUMERIC() mempunyai pengehadan tertentu. Sebagai contoh, ia mungkin kembali benar untuk rentetan yang mengandungi simbol mata wang ($), pemisah (,) atau (.), dan pengendali aritmetik ( , -). Oleh itu, pengesahan tambahan mungkin diperlukan untuk memastikan integriti penukaran.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Rentetan dengan Selamat kepada Integer dengan Nilai Lalai dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!