Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menghantar Rentetan NVARCHAR dengan Selamat kepada Integer dalam T-SQL dan Mengendalikan Ralat Penukaran?

Bagaimana untuk Menghantar Rentetan NVARCHAR dengan Selamat kepada Integer dalam T-SQL dan Mengendalikan Ralat Penukaran?

Linda Hamilton
Lepaskan: 2024-12-31 02:05:09
asal
422 orang telah melayarinya

How to Safely Cast NVARCHAR Strings to Integers in T-SQL and Handle Conversion Errors?

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
Salin selepas log masuk

Dalam ini ungkapan:

  • @text ialah pembolehubah nvarchar yang hendak ditukar.
  • ISNUMERIC(@text) = 1 semak jika rentetan boleh ditukar kepada integer.
  • Jika penukaran berjaya, fungsi CAST menukar @text kepada integer.
  • Jika penukaran gagal, nilai lalai yang ditentukan dikembalikan.

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan