update UE_GW_CHFS h
    set h.hzzsy =nvl((select g.hzzsy
           from UE_GW_HDJL g
          where h.HDJL_ID = g.HDJL_ID
            and g.hzzsy <> 'N/A'),h.hzzsy)
  where h.hzzsy = 'N/A'

解决方案 »

  1.   

    在你的update中,两次查询g表是两个独立的子查询:
    坏处是执行时会对g表进行两次扫描,好处是由于exists的限制,可以减少操作h表记录的条数,但是g表数据量过大,影响性能;所以可以改为下面这种
    这种方式可以只对数据量大的g表进行一次扫描,但坏处是update了h表较多的记录条数,相比数据量的大小,我觉得应该下面这种性能会好点你可以看一下执行计划