本帖最后由 freefish45 于 2011-05-12 15:22:44 编辑

解决方案 »

  1.   

    这个不是替换函数的问题, 你应该用左连接 test1  left join test2 on a.DAT_=b.Jhrq and a. 号码=b. HM and b.hM like '%AB%'
      

  2.   

    时间可以用下面方法替换
    replace(to_char(a.计划时间,'yyyy-mm-dd'),'1900-1-1',b.计划时间) 
      

  3.   

    看不太懂楼主的意思,如果是出现重复数据应该是你有某个表有来关联的字段是有重复数据的,就是说你某个表有两条记条都是满足以下条件的。1对1关系是变不出两条的。
    a.DAT_=b.Jhrq and a. 号码=b. HM and b.hM like '%AB%'
    如果你的时间又有可能是”1900-1-1“又有可能是空值的话,你可用
    case when a.计划时间=to_date(19000101,'yyyymmdd') or a.计划时间 is null then b.计划时间 else a.计划时间 end
      

  4.   

    ----具体要看限制条件了,最好用left join
    select a.号码 AS HM,
      a.DAT_ AS JHRQ,
      a.计划时间 AS JHSJ,  
      a.预计时间 AS YJSJ,
      a.实际时间 AS SJSJ,   
      NVL(a.型号,b.XH)XH,   
      NVL(A.JW,B.JW)JW,
      NVL(A.JWLX,B.JWLX)JWLX,  
      NVL(A.JCBZ,B.JCBZ)JCBZ,  
      A.发送方 AS FS,  
      NVL(A.JT1,B.JT1)JT1,  
      NVL(A.JT2,B.JT2)JT2,  
      NVL(A.jt3,B.JT3)JT3,  
      A.接收方 AS JS,  
      A.任务 AS RW,
      NVL(A. SX, b. SX) SX  
      from test1 a, 
      left join test2 b
    where a.DAT_=b.Jhrq and 限制条件
      

  5.   

    但是我的语句是写在oracle数据库的
      

  6.   

    我的语句是写在oracle数据库里的,相当于建了一个视图
    这样写语法是错的
      

  7.   

    那时间替换呢?就是A里的 a.计划时间 ,  
      a.预计时间 ,
      a.实际时间=‘1900-1-1’时替换成B的B.JHSJ,B.YJSJ,B.SJSJ