ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3902114 VARCHAR型の数値比較
質問者:angelinaane 教えてください。

テーブルにVARCHAR型のデータがあるのですが、
その内容は、数値や文字です。
 2.5
 20
 0未満
などなど。

仮に4以下のデータを抽出する場合、
どのようにかけば「2.5」のデータがHITするのでしょうか?
この場合、「0未満」など文字のあるデータは検索対象から外れてもかまいません。

よろしくお願いします。
困り度:
  • 困っています
質問投稿日時:
08/03/28 15:11
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.2 こんにちは、angelinaaneさん

select * from テーブル
where substring(項目 from '\,|[0-9.-]+') = 項目
and cast(substring(項目 from '\,|[0-9.-]+') as float8) <= 4

これでいかがでしょうか?
回答者:oops1967
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/03/31 16:35
この回答へのお礼おおっ!
スゴイです。

動いてくれています。
ありがとうございます。

回答

ANo.1 小数点以下1桁までと分かっているときは、

select * from テーブル where to_number(フィールド名, '999.9')<=4;

を試してみてください。
回答者:auty
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/03/28 16:06
この回答へのお礼・・ダメでした。

うまく抽出してくれないです。