TSQL - 文字列を整数にキャストするか、デフォルト値を返す 質問する

TSQL - 文字列を整数にキャストするか、デフォルト値を返す 質問する

T-SQL で nvarchar を int にキャストし、変換が失敗した場合にデフォルト値または NULL を返す方法はありますか?

ベストアンサー1

はい :)。これを試してみてください:

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

ISNUMERIC()いくつかの問題点が指摘されているフェドル・ハイドゥ

$(通貨である)、,または.(両方とも区切り文字である)、+などの文字列に対して true を返します-

おすすめ記事