Dalam SQL Server, cabaran timbul apabila cuba menukar data nvarchar bukan angka kepada integer. Untuk mengendalikan senario sedemikian dengan berkesan, adalah penting untuk menentukan nilai lalai atau NULL untuk dikembalikan sekiranya penukaran gagal.
Mujurlah, T-SQL menawarkan penyelesaian kepada isu ini menggunakan gabungan CAST dan Kenyataan KES. Mari terokai cara ia berfungsi:
DECLARE @text AS NVARCHAR(10)
Baris ini mengisytiharkan pembolehubah bernama "@text" dengan panjang maksimum 10 aksara, membolehkan kami menyimpan data nvarchar.
SET @text = '100'
Seterusnya , pembolehubah "@text" diberikan nilai "100", yang merupakan integer yang sah perwakilan.
SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
Baris ini menggunakan pernyataan CASE untuk menilai sama ada nilai "@text" ialah angka atau tidak. Jika ia mengembalikan 1 (Benar), fungsi CAST menukar "@text" kepada integer. Jika ia bukan berangka, pernyataan itu mengembalikan NULL.
Fungsi ISNUMERIC memainkan peranan penting dalam proses ini. Walau bagaimanapun, perlu diperhatikan batasan yang disebut oleh Fedor Hajdu, seperti potensinya untuk merawat rentetan yang mengandungi simbol ($) atau pemisah (.) sebagai angka. Ini merupakan pertimbangan yang penting apabila bekerja dengan jenis data tertentu.
Kesimpulannya, menggunakan pernyataan CASE, bersama-sama dengan CAST dan ISNUMERIC, memberi kuasa kepada pembangun untuk menukar data nvarchar kepada integer dengan mudah sambil mengendalikan kemungkinan kegagalan penukaran, memastikan integriti dan ketepatan keputusan mereka dalam T-SQL.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar NVARCHAR dengan Selamat ke INT dengan Nilai Lalai dalam T-SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!