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

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

Linda Hamilton
發布: 2024-12-31 02:05:09
原創
422 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板