SQL Server では、数値以外の nvarchar データを整数に変換しようとすると問題が発生します。このようなシナリオを効果的に処理するには、変換が失敗した場合に返されるデフォルト値または NULL を指定することが重要です。
幸いなことに、T-SQL は、CAST と CAST を組み合わせてこの問題に対する解決策を提供します。 CASE ステートメント。どのように機能するかを見てみましょう:
DECLARE @text AS NVARCHAR(10)
この行は、最大 10 文字の「@text」という名前の変数を宣言し、nvarchar データを保存できるようにします。
SET @text = '100'
次、変数「@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 中国語 Web サイトの他の関連記事を参照してください。