zoukankan      html  css  js  c++  java
  • Oracle update 之部分更新

    建表语句。

    create table TABLEB (   ID       VARCHAR2(10),   TYPENAME VARCHAR2(10) ); create table TABLEA (   ID     VARCHAR2(10),   TYPEID VARCHAR2(10),   NAME   VARCHAR2(10) );

    insert into tableb (ID, TYPENAME) values ('1', 'type1');

    insert into tableb (ID, TYPENAME) values ('2', 'type2');

    insert into tableb (ID, TYPENAME) values ('3', 'type3'); insert into tablea (ID, TYPEID, NAME) values ('1', '1', 'name1');

    insert into tablea (ID, TYPEID, NAME) values ('2', '2', 'name2' );

    insert into tablea (ID, TYPEID, NAME) values ('3', '3', 'name3'  );

    insert into tablea (ID, TYPEID, NAME) values ('4', '4', 'name4');

    根据b表更新a表。部分更新。

    解决方案1:update tablea set typeid =
    case
      when
      (select name from tableb where tablea.typeid = tableb.id) is not null then
       (select name from tableb where tablea.typeid = tableb.id)
       else tablea.typeid
         end
    解决方案2:

    update tablea a set a.typeid = (select typename from tableb  where a.typeid = tableb.id)
     where exists (select * from tableb where a.typeid=tableb.id)

    两种解决方案都能够解决问题。

  • 相关阅读:
    axis2调用webservice
    JSON: Property 'xxx' has no getter method的解决办法
    JDK中工具类的使用
    Java权限讲解
    JSON的使用
    策略模式
    Tomcat虚拟目录的设置
    extends 与 implements 的区别
    利用正则表达式分割字符串
    给面板添加背景图片
  • 原文地址:https://www.cnblogs.com/thxuaimin/p/2882171.html
Copyright © 2011-2022 走看看