不正な入力の場合に例外をスローせずにvarchar値をintに変換する 質問する

不正な入力の場合に例外をスローせずにvarchar値をintに変換する 質問する

例外をスローせずに SQL Server 関数 Convert/Cast を呼び出す方法はありますか?

基本的に、英数字データを含む列があり、フィールドから値を抽出して、データを整数値として表示したいと考えています。抽出されたデータが数値ではない場合があり、その場合は、SQL Server でその行をスキップ (null または 0 を返す) するようにします。

現在、SQL 選択ステートメントは、「nvarchar 値 'xxxxx' をデータ型 int に変換するときに変換に失敗しました。」というエラーで失敗します。

私が欲しいのは、C# の int.TryParse に似たものです。

提案はありますか?

ベストアンサー1

select case when isnumeric(YourColumn + '.0e0') = 1 
            then cast(YourColumn as int) 
            else NULL 
       end /* case */
    from YourTable

おすすめ記事