select 
case when to_char(a,'YYYYMMDD')>to_char(b,'YYYYMMDD') then c else d end 
from tab

解决方案 »

  1.   

    select decode(sign(a-b),1,c,d) from tab;
      

  2.   

    select decode(sign(a-b),1,c,d) from tab;
      

  3.   

    9i:
    select case when a>b then c else d end    
    from  tab;
      

  4.   

    在多层的decode()函数嵌套调用时,最好使用case when ... then ...,这种方法省去了大量的函数调用的系统开销(内存和CPU),在性能上应该好很多 。我一次进行20级次的decode()嵌套调用,结果死得很难看哦。
      

  5.   

    呵呵,但是如果版本比较老的话也没有办法
    就像在oracle7下面写动态sql,繁琐的狠,但是没办法。
      

  6.   

    select decode(sign(a-b),1,c,d) from tab
      

  7.   

    学习case when ... then ...
      

  8.   

    select decode(sign(a-b),1,c,d) from tab;
    这句不错
      

  9.   

    select decode(sign(a-b),1,c,d) from tab;
      

  10.   

    select decode(sign(a-b),1,c,d) from tbale
    因a,b为日期型,相减时得出为小时数,再sign进行判断a,b的正负,就可得你要的结果