TSQL:將字串轉換為具有預設值或NULL 的整數
將字串轉換為整數是T-SQL 中的常見任務。但是,當無法進行轉換時,可能會發生錯誤。為了處理這種情況,T-SQL 提供了一種有用的方法,可讓您在轉換失敗時傳回預設值或 NULL。
解
解涉及使用ISNUMERIC() 函數檢查字串是否可以轉換為整數。如果可以進行轉換,則使用 CAST() 函數將字串轉換為整數。否則,傳回預設值或 NULL。
以下程式碼片段示範了這個方法:
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
在此範例中,第一個 SELECT 語句傳回 100,因為 '100' 可以轉換為整數。第二個 SELECT 語句傳回 NULL,因為 'XXX' 無法轉換為整數。
注意事項
需要注意的是,ISNUMERIC() 函數有一些限制。正如 Fedor Hajdu 所指出的,對於包含某些字元的字串,例如 $(貨幣)、,(分隔符號)和 -,它可能會傳回 true。因此,建議在驗證整數轉換輸入時謹慎使用 ISNUMERIC()。
以上是如何在 T-SQL 中使用預設值或 NULL 安全地將字串轉換為整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!