T-SQL では、nvarchar 文字列を整数に変換することがデータ操作にとって重要です。ただし、数字以外の文字が含まれる場合、そのような変換は失敗する可能性があります。これにより、変換エラーを適切に処理する必要性が生じます。
CASE WHEN 式は、このシナリオを処理するための堅牢なメカニズムを提供します。構文は次のとおりです。
CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
その仕組みは次のとおりです。
このアプローチにより、文字列から整数への変換が成功した場合に、正しい整数値が返されることが保証されます。ただし、数字以外の文字が原因で変換が失敗した場合は、NULL 値が返されます。
DECLARE @text AS NVARCHAR(10) -- Numeric string SET @text = '100' SELECT @text, CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END -- Non-numeric string SET @text = 'XXX' SELECT @text, CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE NULL END
ISNUMERIC() 関数は、数値をチェックする便利な方法ですが、その点に注意することが重要です。制限事項:
これらの制限にもかかわらず、ISNUMERIC() および CAST() を使用した CASE WHEN は、文字列を整数にキャストし、T-SQL で数値以外の場合を処理するための実用的なソリューションを提供します。
以上が非数値を処理しながら、T-SQL で NVARCHAR 文字列を整数に安全にキャストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。