首頁 >資料庫 >mysql教程 >如何在 T-SQL 中安全地將 NVARCHAR 字串轉換為整數並處理轉換錯誤?

如何在 T-SQL 中安全地將 NVARCHAR 字串轉換為整數並處理轉換錯誤?

Linda Hamilton
Linda Hamilton原創
2024-12-31 02:05:09437瀏覽

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

字串轉換為整數並處理轉換失敗

在T-SQL中,我們可能會遇到需要轉換nvarchar資料類型的場景為整數,但處理轉換失敗的情況。實現此目的的一種方法是透過 CAST 函數和 ISNUMERIC() 函數的組合。

使用預設值進行轉換

將nvarchar 字串轉換為整數並在轉換失敗時傳回預設值,我們可以使用CASE 語句,如下所示:

SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE <default value> END

在此表達式:

  • @text是要轉換的 nvarchar 變數。
  • ISNUMERIC(@text) = 1 檢查字串是否可以轉換為整數。
  • 如果轉換成功,CAST函數將@text轉換為整數。
  • 如果轉換失敗,則指定的預設值為回傳。

範例

考慮以下範例:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn