求 oracle 从一个表中取出数据作为参数 修改另一个表的sql语句

如题所述

第1个回答  2020-01-15
有两种情况:
1.查询a表结果,作为更新b表的条件;
update
table_b
set
col_1
=
'123'
where
col_2
in
(select
col_22
from
table_a
where
...);
2.查询a表结果,用来更新b表指定条件
update
table_b
set
col_1
=
(select
col_11
from
table_a
where
col_22
=
table_b.col_2)
where
...
不知道你是哪种,套用这个试试。如果情况复杂,请追问,列出表结果,说明操作要求。

求oracle 从一个表中取出数据作为参数 修改另一个表的sql语句
1、将数据表作以游标形式取数据;2、将取出数据经过逻辑判断后,执行UPDATE语句。declare v_1 varchar2(100);curor v_cur is select a_1 from A_table where ...; ---从一个表取数据 begin open v_cur fetch v_cur into v_1;exit when v_cur %notfound;if ... then ---判断是...

MSSQL 数据库问题 ,从一个表取数更新另外一个表
--要求两个表字段名都相同--根据表1字段,拼一个update的sql语句,然后执行Declare @SQL Varchar(1000)='Update 表1 Set 'Select @SQL=@SQL+'表1.'+name+'=表2.'+name+',' from sys.columns where object_id=object_id('表1')and name<>'id'Set @SQL=STUFF(@SQL,LEN(@SQL),1,''...

oracle中sql怎么把一个中间结果的数据更新到另一个表
using table2 on (table1.col1=table2.col2)when matched then update set table01.字段=table02.字段 where 条件;table2 可以是表,也可以是结果集

oracle里怎么同时取出一个表里的数据和另一个表里面的数据
需要用关联查询。如有以下两张表,其中两表的deptno是关联字段。现要求查出每个人对应的dname,可用如下语句:select a.ename,b.dname from emp a,dept b where a.deptno=b.deptno;查询结果:

oracle 怎么用sql语句把一个表中相应字段的数据复制到另一表中的相应...
你意思是要建立一个中间表维持两表之间的多对多的复杂该系是吧?你试试这个语句:insert into C(a1,b1,a2,b2,) select ... from ...写上你所要关联的数据。一般的需求不会是笛卡尔集是吧。也就是说不可能每个数据都对应完所有数据。

如何用SQL语句把一个表值赋值到另外一个表中
--Sql server update b set b.c=a.c from a,b where a.a=b.b --Oracle update B set c = (select c from A where A.a = B.b and rownum=1)--rownum=1有多条纪录取第一条,否则有重复纪录(a.a=b.b>1)会报错

oracle 根据一个表向另一个表查数据
v_tb yy_b%rowtype;--声明变量v_tb与你所谓的B表类型一致,我这里的yy_b改成你的B表 begin v_tb := null;for cur in(select id from tst order by id) loop--取出A表中的数据 dbms_output.put_line(cur.id||' ');if v_tb.b1>0 then--第二次循环及以后 if (cur.id-1)=v_...

oracle sql更新字段为另一张表的对应字段
首先你的语句有点问题,应该这样写:update table_1 t1 set t1.name=(select t2.name from table_2 where t1.id=t2.id)where exists (select 1 from table_2 where t1.id=t2.id) and t1.idcard ='1111';之前子查询中的 t1.idcard ='1111' 是多余的。exists子句中的 t1.idcard =...

在Oracle中怎样用一张表去Update另一张表
1、如果T_USER表中的一个USER_ID在T_NAME_MAP 表中存在两条以上的记录,则该语句会报错。因为Oracle是无法辨别你要“更新”哪一条的。当然,从纯技术的角度来看,这种情况也是可以处理的,你可以在B.NEW_NAME 上加一个函数,如MAX(B.NEW_NAME ).2、WHERE EXISTS 语句绝对不可以省略,有了这个...

将一个表中的某个字段插入到另一个表的字段,如何写SQL语句?
楼主说的是更新吧,楼上说的是SQL SERVER的语法,不知道楼主是什么数据库,如果是oracle的话 建议这么写:update a set col=(select col from b where a.id=b.id)exists(select 1 from b where a.id=b.id )注意:两个表的ID 一定要一一对应,不让会报错:查询单个值返回多条记录。

相似回答