当前位置: 代码迷 >> Oracle管理 >> 帮忙啊该怎么处理
  详细解决方案

帮忙啊该怎么处理

热度:9   发布时间:2016-04-24 05:23:06.0
帮忙啊
现在有两张表: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)
  相关解决方案