怎样将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
  • 95043

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

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

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

update wx_weather a set (a.high_l,a.low_l)= (select high_l, low_l from wx_original_weather b where a...

Oracle中用一个表的数据更新另一个表的数据

转自:http://www.2cto.com/database/201205/130987.html有下面两个表:将表tab1中id值与和表tab2中id值相同的行的val更新为tab2中val的值....

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

oracle 同时更新(update)多个字段多个值 分类: 数据库2010-09-17 14:47 28532人阅读 评论(1) 收藏 举报 oracleinserttable ...

oracle 多表关联更新,需要更新的字段在另一个表里

两表(多表)关联update -- 被修改值由另一个表运算而来 update customers a -- 使用别名 set city_name=(select b.city_name from...

Oracle 将一张表的数据更新到另一张表

需求 有表成绩T1,记录学生成绩,表T2是一张加分的表,现在用表T2给少数名族学生加分。 表成绩表T1 PID SCORE ISMINORITY ---- ---------- ----...

Oracle中用一个表的数据更新另一个表的数据

Oracle中用一个表的数据更新另一个表的数据 有下面两个表:将表tab1中id值与和表tab2中id值相同的行的val更新为tab2中val的值. select * from tab1;   ...

在Oracle数据库里,用一个表去更新另一个表的方法

在Oracle里,有时需要用一个表去更新另一个表。下面是实现的例子:1.创建一个表test_acreate table test_a(id number(19),name varchar2(20),a...

Oracle 用一个表字段更新另一个表字段三种方法

1. update (select .....) set column1 = column2; update (select iy.company_name company_name1, cc....
  • e_wsq
  • e_wsq
  • 2016年07月29日 10:52
  • 2940
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:怎样将Oracle一张表的多个字段更新到另一张表中去
举报原因:
原因补充:

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