select  
decode(sign(column),1,
decode(sign(column-0.1),-1,0.1,column),column)              
into tmp
from dual; 
如果是从表内算的话是这样。
如果是语句的话。
declare 
tmp varchar2(100)
begin
if column >0 and column <0.1 
then
tmp = 0.1
else
tmp = column
end if;

解决方案 »

  1.   

    select decode(sign(column*(column-0.1)),-1,0.1,column) from tab1;
    更简单一些。
      

  2.   

    select decode(sign(column-0)*sign(0.1-column),1,0.1,column) tmp form tab
      

  3.   

    我发现select  decode(sign(column-0.1),-1,0.1,column) from dual; 就可以了
    为什么要用column*呢?乘上这列干什么呢?
      

  4.   

    是不是考虑到column<0的情况了。
    西西,这个条件不需要了。
    OK,给分。