通过Update语句将A表的某列值修改为B表中的指定列的值时,所用的sql语句在Oracle和SQL Server中是不一样的,
代码如下:
Oracle中的语句:
UPDATE A
SET ACOL1=(SELECT BCOL1 from B where AKEY=BKEY [and 其它限制(可选)] )
where 其它条件
SQL Server中更新语句:
update A
SET ACOL1=BCOL1
FROM A,B where AKEY=BKEY where 其它条件限制。
若关联条件为多个,where后面用and 连接指定条件即可。
改表名:(1)ALTER TABLE old_table_name RENAME TO new_table_name;
(2)rename old_table_name to new_table_name;(注意:rname只能修改自己schema下面的表)
查询到的结果可用for update来修改。
如:
select from emp;查询到以下数据:
此时语句可改写:
然后点击如图图标:
此时可以修改表中内容,如将empno为8888的改成4444。按图中所示进行 *** 作即可。
比如说我现在数据库中 表A我,有两列:ID和name,我现在需要把ID=1001的name字段改成‘小明’:
答案如下:
update A set name='小明' where ID='1001'
使用b表数据更新a表,那么where条件是什么,也就是说,更新a表中哪些数据,用b表中的哪些数据更新,二者的关系是什么。从你的语句中我看不出b表和a表的关联。
找到关联条件后,通过关联条件查出的b表数据是否唯一,如果不唯一,还是会出现“返回值多于一行”的错误。
按照你的表结构和数据,假设A表和B表中的name列唯一,以name作为关联,可以这样写来实现你的更新目的。
update A set cou2 = (select B_cou1 from B where BB_name = Aname) where name in (select B_name from B where BB_name = Aname)
这条语句必须满足name在a、b表中唯一的条件,才能使用。
甲骨文股份有限公司是全球大型数据库软件公司,总部位于美国加州红木城的红木岸。在2008年,甲骨文股份有限公司是继Microsoft及IBM后,全球收入第三多的软件公司。
Oracle数据库产品为财富排行榜上的前1000家公司所采用,许多大型网站也选用了Oracle系统。甲骨文股份有限公司于1989年正式进入中国,在北京、上海、广州和成都均设立了分支机构。
2016年1月,甲骨文表示会收购网站数据追踪服务商AddThis。2016年2月,甲骨文收购了云计算创业公司Ravello Systems。2017年6月7日发布的2017年美国《财富》500强,甲骨文公司排名第81位。
2017年6月,《2017年BrandZ最具价值全球品牌100强》公布,甲骨文公司排名第46位。
20世纪约70年代一间名为Ampex的软件公司,为中央情报局设计一套名叫Oracle的数据库,埃里森是程序员之一。
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_bcol_2)
where
不知道你是哪种,套用这个试试。如果情况复杂,请追问,列出表结果,说明 *** 作要求。select from (rownum rn, from 表名) where rn=9;可查第九行
update 表名 set 1=1 where rownum=9;可改
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)