文字列を整数にキャストし、変換エラーを処理する
T-SQL では、nvarchar データ型を変換する必要があるシナリオに遭遇することがあります。整数に変換しますが、変換が失敗した場合も処理します。これを実現する 1 つの方法は、CAST 関数と ISNUMERIC() 関数を組み合わせることです。
デフォルト値による変換
nvarchar 文字列を文字列にキャストするには整数を返し、変換が失敗した場合はデフォルト値を返すため、CASE ステートメントを次のように使用できます。
SELECT CASE WHEN ISNUMERIC(@text) = 1 THEN CAST(@text AS INT) ELSE <default value> 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 が返されます。 2 番目のケースでは、文字列「XXX」は変換できず、デフォルト値として NULL が返されます。
ISNUMERIC() の制限事項の処理
次のことに注意してください。 ISNUMERIC() は、通貨記号、小数点、または記号を含む文字列など、有効な整数ではない一部の文字列に対して true を返す場合があります。 /- 兆候。したがって、文字列をキャストする前に、より徹底的に検証することをお勧めします。
以上がT-SQL で NVARCHAR 文字列を整数に安全にキャストし、変換エラーを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。