Oracleバージョン:私は、データセットの最小値/最小値を見つけるために、MIN
機能を使用しようとしているのOracle SQL - データセットのMIN値を検索しますが、MINの計算で値を除外
を10gの。 MIN
を実行している列は、VARCHAR2
の列です。この列には数値を含めるか、値が適用されないことを表す ' - 'の値が含まれます。
カラムにMIN()
関数を実行すると、常に ' - 'が返されます。
には、を除き、MINステートメントで ' - 'が計算されないようにしたいと考えています。文でWHERE句を使用して、有効なデータを除外するため ' - 'で列をフィルタリングすることはできません。
注:これは大規模な従来のクエリです(500行以上)ので、この膨大なクエリを書き直すことは実際の選択肢ではありません。
私はvarcharとして数字を格納しないことに完全に同意します。なぜなら、NVL関数を使って ' - 'か数字を表示するかどうかを判断するビューであるからです。 – contactmatt
@Contactmatt次に、他のテーブル/プロシージャでそのビューへの参照をチェックし、それを修正することを提案します。データが 'NULL'の場合は、' NULL21 'や他の数値を渡しましょう。例えば、-2147483647のようにあなたのデータで実際には不可能なことを知っておいてください。 – JNK