在T-SQL 中,將nvarchar 字串轉換為整數對於資料操作至關重要。但是,當遇到非數字字元時,此類轉換可能會失敗。這就需要優雅地處理轉換錯誤。
CASE WHEN 表達式提供了一個強大的機制來處理這種情況。語法如下:
CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
其工作原理如下:
此方法可確保如果從字串到整數的轉換成功,則傳回正確的整數值。但是,如果由於非數字字元導致轉換失敗,則會傳回 NULL 值。
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
雖然 ISNUMERIC()函數提供一種檢查數值的便捷方法,重要的是要了解它限制:
儘管有這些限制,CASE WHEN with ISNUMERIC() 和CAST() 提供了一種實用的解決方案,用於將字串轉換為整數並在T-SQL 中處理非數字情況。
以上是如何在 T-SQL 中安全地將 NVARCHAR 字串轉換為整數,處理非數字值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!