Вы можете преобразовать varchar в десятичное число, например:
select *
from YourTable
where CAST(YourField AS decimal) < 40.00
Или используйте функцию TO_NUMBER () :
select *
from YourTable
where TO_NUMBER(YourField) < 40.00
Если поле не всегда является числом и у вас установлена сравнительно недавняя установка Oracle, вы можете выбрать строки, в которых YourField имеет числовые значения, например:
select *
from (
select *
from YourTable
where regexp_like(YourField, '^-?[[:digit:],.]+$')
) sub
where TO_NUMBER(YourField) < 40.00