Dalam T-SQL, menukar rentetan nvarchar kepada integer adalah penting untuk manipulasi data. Walau bagaimanapun, apabila menemui aksara bukan angka, penukaran tersebut boleh gagal. Ini menimbulkan keperluan untuk mengendalikan ralat penukaran dengan anggun.
Ekspresi CASE WHEN menyediakan mekanisme yang teguh untuk mengendalikan senario ini. Sintaksnya adalah seperti berikut:
CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
Begini cara ia berfungsi:
Pendekatan ini memastikan bahawa jika penukaran daripada rentetan kepada integer berjaya, nilai integer yang betul dikembalikan. Walau bagaimanapun, jika penukaran gagal disebabkan oleh aksara bukan angka, nilai NULL dikembalikan.
DECLARE @text AS NVARCHAR(10) -- Numeric string SET @text = '100' SELECT @text, CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END -- Non-numeric string SET @text = 'XXX' SELECT @text, CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
Sementara fungsi ISNUMERIC() menawarkan cara yang mudah untuk menyemak nilai berangka, adalah penting untuk mengetahuinya had:
Walaupun pengehadan ini, CASE WHEN dengan ISNUMERIC() dan CAST() menyediakan penyelesaian praktikal untuk menghantar rentetan kepada integer dan mengendalikan kes bukan angka dalam T-SQL.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghantar Rentetan NVARCHAR dengan Selamat kepada Integer dalam T-SQL, Mengendalikan Nilai Bukan Angka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!