• ベストアンサー

VARCHAR型の数値比較

教えてください。 テーブルにVARCHAR型のデータがあるのですが、 その内容は、数値や文字です。  2.5  20  0未満 などなど。 仮に4以下のデータを抽出する場合、 どのようにかけば「2.5」のデータがHITするのでしょうか? この場合、「0未満」など文字のあるデータは検索対象から外れてもかまいません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • oops1967
  • ベストアンサー率62% (5/8)
回答No.2

こんにちは、angelinaaneさん select * from テーブル where substring(項目 from '\,|[0-9.-]+') = 項目 and cast(substring(項目 from '\,|[0-9.-]+') as float8) <= 4 これでいかがでしょうか?

angelinaane
質問者

お礼

おおっ! スゴイです。 動いてくれています。 ありがとうございます。

その他の回答 (1)

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

小数点以下1桁までと分かっているときは、 select * from テーブル where to_number(フィールド名, '999.9')<=4; を試してみてください。

angelinaane
質問者

お礼

・・ダメでした。 うまく抽出してくれないです。

関連するQ&A