Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menghantar Rentetan dengan Selamat kepada Integer dalam T-SQL dengan Nilai Lalai atau NULL?
TSQL: Menghantar Rentetan kepada Integer dengan Nilai Lalai atau NULL
Menghantar rentetan kepada integer ialah tugas biasa dalam T-SQL. Walau bagaimanapun, apabila penukaran tidak dapat dilakukan, ralat mungkin berlaku. Untuk mengendalikan situasi sedemikian, T-SQL menyediakan pendekatan berguna yang membolehkan anda mengembalikan nilai lalai atau NULL jika penukaran gagal.
Penyelesaian
Penyelesaian melibatkan penggunaan fungsi ISNUMERIC() untuk menyemak sama ada rentetan boleh ditukar kepada integer. Jika penukaran boleh dilakukan, fungsi CAST() digunakan untuk menukar rentetan kepada integer. Jika tidak, nilai lalai atau NULL dikembalikan.
Coretan kod berikut menunjukkan pendekatan ini:
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 contoh ini, pernyataan SELECT pertama mengembalikan 100 kerana '100' boleh ditukar kepada integer. Pernyataan SELECT kedua mengembalikan NULL kerana 'XXX' tidak boleh ditukar kepada integer.
Pertimbangan
Adalah penting untuk ambil perhatian bahawa fungsi ISNUMERIC() mempunyai beberapa batasan. Seperti yang dinyatakan oleh Fedor Hajdu, ia mungkin kembali benar untuk rentetan yang mengandungi aksara tertentu, seperti $ (mata wang), , (pemisah) dan -. Oleh itu, adalah disyorkan untuk menggunakan ISNUMERIC() dengan berhati-hati apabila mengesahkan input untuk penukaran integer.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Rentetan dengan Selamat kepada Integer dalam T-SQL dengan Nilai Lalai atau NULL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!