在 SQL Server 中,嘗試將非數字 nvarchar 資料轉換為整數時會出現挑戰。為了有效地處理這種情況,必須指定一個預設值或在轉換失敗時傳回 NULL。
幸運的是,T-SQL 結合使用 CAST 和案例陳述。讓我們探討一下它是如何運作的:
DECLARE @text AS NVARCHAR(10)
這一行聲明了一個名為「@text」的變量,最大長度為 10 個字符,允許我們儲存 nvarchar 資料。
SET @text = '100'
Next ,變數“@text”被賦予值“100”,這是一個有效的整數表示。
SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
此行利用 CASE 語句來評估「@text」的值是否為數字。如果傳回 1 (True),CAST 函數會將「@text」轉換為整數。如果不是數字,則語句傳回 NULL。
ISNUMERIC 函數在過程中扮演至關重要的角色。然而,值得注意的是 Fedor Hajdu 提到的限制,例如它可能將包含符號 ($) 或分隔符號 (.) 的字串視為數字。在處理特定類型的數據時,這是一個至關重要的考慮因素。
總之,使用 CASE 語句與 CAST 和 ISNUMERIC 結合使用,使開發人員能夠輕鬆地將 nvarchar 資料轉換為整數,同時處理潛在的轉換失敗,確保T-SQL 結果的完整性和準確性。
以上是如何在 T-SQL 中使用預設值安全地將 NVARCHAR 轉換為 INT?的詳細內容。更多資訊請關注PHP中文網其他相關文章!