以下は、フィールドを型にキャストして評価するために必要なクエリと似ていますが、対象のデータ型にキャストできないデータがある行は無視したいと考えています。2番目の条件を短絡するためにこのクエリを書くより良い方法はありますか?
select * from MyTable
where case when isnumeric(SomeField) = 1 then SomeField else null end > 1
したがって、上記の例では、私はSomeFieldにおける任意の非数値フィールドがあった場合起因する変換エラーを回避しながら、1より大きい値をテストすることができています。私はこの解決策で大丈夫ですが、もっと良い方法があるのだろうかと思っています。
このデータベースに入力されるデータを制御できますか?なぜあなたはまずデータ型について心配する必要があるのか不思議です。 –
これは、csvファイルからSQLテーブルにデータをインポートするアプリケーションです。だから私は、ターゲットフィールドのデータ型が何であるかに基づいて、ソースフィールドの無効なデータ(切り捨てられた文字データ、数値フィールドなど)があるかどうかを調べ、データグリッドビューのレコードをハイライトしますユーザーはインポートする前に調整を行うことができます。 –
しかし、ええ、私が提供した情報に基づいてあなたの応答を読んでいたら、私はそれをあまりにもアップしました:)まあ、それは常識のためにとにかくupvoteしますが、残念ながらこのシナリオでそれを適用することはできません。 –