日期:2014-05-17  浏览次数:20774 次

帮忙啊
现在有两张表:A,B, 
A
(
  DB001 VARCHAR2(2 BYTE) NOT NULL,
  DB002 VARCHAR2(10 BYTE) NOT NULL,
  DB003 VARCHAR2(10 BYTE) NOT NULL,
  SEGMENT_GID VARCHAR2(32 BYTE),)
B
DB2307
(
  CLASS VARCHAR2(2 BYTE) NOT NULL,
  CODE_ID VARCHAR2(10 BYTE) NOT NULL,
  CODE_CDESC VARCHAR2(50 BYTE),
  CODE_EDESC VARCHAR2(50 BYTE),
  CODE_REMARK1 VARCHAR2(50 BYTE),)
现在A表的SEGMENT_GID 是空的,想用B表的 CODE_REMARK1去更新A表的SEGMENT_GID 字段,条件A.DB001=B.CODE_ID
如果CODE_REMARK1也是空的话,就给 SEGMENT_GID 更新为123 。  
请问大家改如何写呢?

------解决方案--------------------
SQL code
update a  
set a.SEGMENT_GID = 
                   (select nvl(b.CODE_REMARK1, '123') 
                    from   b 
                    where  A.DB001=B.CODE_ID)

------解决方案--------------------
参考语句:
SQL code

UPDATE A SET SEGMENT_GID = 
(SELECT NVL(CODE_REMARK1, '123') FROM B
 WHERE B.CODE_ID = A.DB001)