T-SQL でのデフォルト値を使用した整数への文字列のキャスト
T-SQL では、文字列 (nvarchar) をキャストする必要がよくあります。 ) 値を整数 (int) データ型に変換します。ただし、文字列に数字以外の文字が含まれている場合、この変換は失敗する可能性があります。このようなシナリオを適切に処理するには、変換が失敗した場合にデフォルト値または NULL を返す必要があります。
これを実現するには、CASE 式を ISNUMERIC() 関数と組み合わせて使用できます。 ISNUMERIC() は、文字列が有効な数値を表すかどうかを評価し、true の場合は 1、false の場合は 0 を返します。
構文:
CASE WHEN ISNUMERIC(@variable) = 1 THEN CAST(@variable AS INT) ELSE NULL END
例:
次の点を考慮してください例:
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' が有効な整数であるため、変換は成功し、値 100 が返されます。 2 番目のケースでは、'XXX' は数値ではないため、 ISNUMERIC() 関数は 0 を返し、CASE 式が返されます。 NULL.
考慮事項:
ISNUMERIC() には特定の制限があることに注意してください。たとえば、通貨記号 ($)、区切り文字 (,) または (.)、および算術演算子 ( 、-) を含む文字列に対して true を返す場合があります。したがって、変換の整合性を保証するために追加の検証が必要になる場合があります。
以上がT-SQL で文字列をデフォルト値を持つ整数に安全にキャストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。