次のようなさまざまな数値形式のテーブルがあります。
- 2
- 3.44189
- 4,1
- -0.0022
- 9.9E+37
- 1.9E-12
これらは varchar2 列の測定値であり、各測定値には上限値と下限値 (同じ形式) の仕様があるため、これらの境界線の間の測定値が必要です
SELECT VALUE, LOW, HIGH FROM MEASUREMENTS
WHERE to_number(replace(VALUE,',','.'), '999999999D99999999999999999999999999999999999999','NLS_NUMERIC_CHARACTERS = ''.,''')
> to_number(replace(LOW,',','.'), '999999999D99999999999999999999999999999999999999','NLS_NUMERIC_CHARACTERS = ''.,''')
AND to_number(replace(VALUE,',','.'), '999999999D99999999999999999999999999999999999999','NLS_NUMERIC_CHARACTERS = ''.,''')
<=to_number(replace(HIGH,',','.'), '999999999D99999999999999999999999999999999999999','NLS_NUMERIC_CHARACTERS = ''.,''')
これらのクエリは、9.9E+37 のような指数を除いて、上記のすべての数値に対して機能します。TO_CHAR での書き換えを見つけましたが、varchar では機能しません
varchar として保存されているさまざまな数値を互いに比較する解決策はありますか? どうも