字串轉換為整數並處理轉換失敗
在T-SQL中,我們可能會遇到需要轉換nvarchar資料類型的場景為整數,但處理轉換失敗的情況。實現此目的的一種方法是透過 CAST 函數和 ISNUMERIC() 函數的組合。
使用預設值進行轉換
將nvarchar 字串轉換為整數並在轉換失敗時傳回預設值,我們可以使用CASE 語句,如下所示:
SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE <default value> END
在此表達式:
範例
考慮以下範例:
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
在第一種情況下,轉換成功,並且回傳 100。第二種情況,字串 'XXX' 無法轉換,傳回 NULL 作為預設值。
處理ISNUMERIC() 限制
值得注意的是對於某些不是有效整數的字串,例如包含貨幣符號、小數點或/- 符號的字串,ISNUMERIC() 可能會回傳true。因此,建議在轉換之前更徹底地驗證字串。
以上是如何在 T-SQL 中安全地將 NVARCHAR 字串轉換為整數並處理轉換錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!