怎样将Oracle一张表的多个字段更新到另一张表中去

原创 2012年12月29日 20:22:43

假设表a中有多个字段(province ,city)需要从b表获取(两张表的mobile一样),总结了几种写法。

 

一、update a  set a.province=(select province from b where b.mobile=a.mobile);

        update a  set a.city=(select cityfrom b where b.mobile=a.mobile);

 

这种写法效率太低,尤其是号码有上万条的时候,所以抛弃。

 

二、update a set a.province=b.province,a.city=b.city from a  inner join b on a.mobile=b.mobile.

      或者update a set a.province=b.province,a.city=b.city from a,b where a.mobile=b.mobile.

 

三、update a inner join b on a.mobile=b.mobile set a.province=b.province,a.city=b.city 

注意:第二种和第三种写法在oracle行不通的,老是报错,折腾了好长时间,最后还是用下面的语句解决了问题

 

四、update a set(a.province,a.city)=(select province,city from b where b.mobile=a.mobile)  

其实第四种方法是第一种方法的合并。

 

项目中写的真实例子:
update m_smsphoneno a set (a.operator,a.province,a.city)=(select  OWNER,STATE,CITY from keyaccount.CELLPHONESORT b where substr(a.mobile,1,7)=b.startcode)  where  a.category=2 and a.city is null;   注:用a.city=null不行的

 

 


 

 

oracle 同时更新(update)多个字段多个值

create table A (a1 varchar2(33),a2 varchar2(33),a3 varchar2(33));create table B (b1 varchar2(33),b2 ...
  • bbqk9
  • bbqk9
  • 2010年09月17日 14:47
  • 100266

oracle 用一个表的多个字段更新另一个表对应的多个字段

update wx_weather a set (a.high_l,a.low_l)= (select high_l, low_l from wx_original_weather b where a...
  • limengmeng525128
  • limengmeng525128
  • 2016年11月07日 16:15
  • 1700

数据库 UPDATE多条记录不同值,同时UPDATE多个字段

数据库 UPDATE多条记录不同值,同时UPDATE多个字段。
  • catoop
  • catoop
  • 2015年06月28日 14:31
  • 56992

oracle update 实现多行多列更新

在网上看到的,记录下,实现多行多列更新 update table1 r set (r.city,r.COUNTY,r.CELL_NAME,r.CELL_UK)  =  ( select  ...
  • windhawk777
  • windhawk777
  • 2016年08月12日 12:45
  • 3267

oracle多表关联多字段update

多表关联多字段update有代码有J8:update spatial_references set( auth_name, auth_srid, falsex, falsey, xyunits...
  • leftfist
  • leftfist
  • 2016年06月13日 18:32
  • 5360

oracle同时添加多个字段-案例

操作数据库:oracle 10g 有时候有需要在oracle数据库中添加多个字段的需求,案例如下: alter table my_workflow add (state varchar2(2) ...
  • zhengqiqiqinqin
  • zhengqiqiqinqin
  • 2014年02月28日 09:52
  • 15077

oracle 同时更新(update)多个字段多个值

oracle 同时更新(update)多个字段多个值 分类: 数据库2010-09-17 14:47 28532人阅读 评论(1) 收藏 举报 oracleinserttable ...
  • lenovouser
  • lenovouser
  • 2015年09月29日 08:11
  • 3616

oracle 同时更新(update)多个字段多个值

--创建表A,B: create table A (a1 varchar2(33),a2 varchar2(33),a3 varchar2(33)); create table B (b1...
  • zb0567
  • zb0567
  • 2015年01月19日 21:44
  • 3093

Oracle 两表关联更新

有TA, TB两表,假设均有三个栏位id, name, remark. 现在需要把TB表的name, remark两个栏位通过id关联,更新到TA表的对应栏位。 建表脚本: [sql] v...
  • zcouy
  • zcouy
  • 2017年01月10日 14:50
  • 1443

Oracle update 两表及以上关联更新,出现多值情况,不是一对一更新

Oracle update 两表及以上关联更新,出现多值情况,不是一对一更新
  • zhangzhongzhong
  • zhangzhongzhong
  • 2016年04月28日 10:52
  • 6176
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:怎样将Oracle一张表的多个字段更新到另一张表中去
举报原因:
原因补充:

(最多只允许输入30个字)