I can see that nothing works, even you fail!
Shouldn't the low range for 0,29 be 0,25 ???
In which case, for a given number N
select d.N, r1.range low_range, r2.range high_range
from
(select N from dual) d,
range_table r1,
range_table r2
where r1.range < d.N
and not exists (select range from range_table where range > r1.range and range < d.N)
and r2.range > d.N
and not exists (select range from range_table where range > d.N and range < r2.range)
Of course, this will not work if N does not fit into a range.
You could cover that with scalar selects.
select d.N,
(select range from range_table t1 where t1.range < d.N
and not exists (select range from range_table t2 where t2.range > t1.range and t2.range < d.N)) low_range,
(select range from range_table t1 where t1.range > d.N
and not exists (select range from range_table t2 where t2.range < t1.range and t2.range > d.N)) high_range
from
(select N from dual) d