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
この例では、「100」は変換できるため、最初の SELECT ステートメントは 100 を返します。整数に。 「XXX」は整数に変換できないため、2 番目の SELECT ステートメントは NULL を返します。
考慮事項
ISNUMERIC() 関数にはいくつかの制限があることに注意することが重要です。 Fedor Hajdu が指摘したように、$ (通貨)、, (区切り文字)、- などの特定の文字を含む文字列に対して true を返す場合があります。したがって、整数変換の入力を検証する場合は、慎重に ISNUMERIC() を使用することをお勧めします。
以上がT-SQL で文字列をデフォルト値または NULL の整数に安全にキャストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。