首頁 >資料庫 >mysql教程 >如何在 T-SQL 中使用預設值或 NULL 安全地將字串轉換為整數?

如何在 T-SQL 中使用預設值或 NULL 安全地將字串轉換為整數?

Patricia Arquette
Patricia Arquette原創
2024-12-30 01:51:10174瀏覽

How to Safely Cast Strings to Integers in T-SQL with Default Values or NULL?

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

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