Oracle A表更新B表
我要用A表a1a2a3a4B51122223444B表B1B2B3B4B51122223444用A表的数据更新B表数据但是要求B5的数据不能有变动(实际表中A表B5字段名...
我要用A表 a1 a2 a3 a4 B5
1 1 2 2 2
2 3 4 4 4
B表 B1 B2 B3 B4 B5
1 1 2 2 2
2 3 4 4 4
用A表的数据更新B表数据 但是要求B5的数据不能有变动 (实际表中A表B5字段名和B表B5字段名一样的,只是值不同)如何更新? 请写出SQL语句并上中文解释 谢谢 展开
1 1 2 2 2
2 3 4 4 4
B表 B1 B2 B3 B4 B5
1 1 2 2 2
2 3 4 4 4
用A表的数据更新B表数据 但是要求B5的数据不能有变动 (实际表中A表B5字段名和B表B5字段名一样的,只是值不同)如何更新? 请写出SQL语句并上中文解释 谢谢 展开
展开全部
首先要确定A表和B表可作为关联操作的数据字段,如A表中a1||a2与B表中b1||b2做相符匹配才可
如此,可通过存储过程来实现
create or replace procedure doupdate
as
begin
for a in(select * from a)
begin
update b set b.b1=a.a1,b.b2=a.a2,b.b3=a.a3,b.b4=a.a4,b.b5=a.a5
where a.a1||a.a2=b.b1||b.b2;
end
commit;
end
因为环境原因,以上过程代码还需执行或调试
如此,可通过存储过程来实现
create or replace procedure doupdate
as
begin
for a in(select * from a)
begin
update b set b.b1=a.a1,b.b2=a.a2,b.b3=a.a3,b.b4=a.a4,b.b5=a.a5
where a.a1||a.a2=b.b1||b.b2;
end
commit;
end
因为环境原因,以上过程代码还需执行或调试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实现思路就是通过两个表的关联字段,之后将结果更新到另外一个表中:
sql:update b set a3=(select a3 from a where a.a1=b.b1 and a.a2=b.b2)
备注:使用上边语句,不存在b表中的a表数据不会被更新。
sql:update b set a3=(select a3 from a where a.a1=b.b1 and a.a2=b.b2)
备注:使用上边语句,不存在b表中的a表数据不会被更新。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用A表的数据更新B表数据 但是要求B5的数据不能有变动.
哪一个是基准的字段呢?
换句话说, 对于 A 表的
a1 a2 a3 a4 B5
1 1 2 2 2
是通过哪一个字段,去匹配 B 表的数据呢?
两表关联更新的例子, 不过是 SQL Server 版本的,仅供参考。
http://hi.baidu.com/wangzhiqing999/blog/item/0d6aaaf780a98b42352accd4.html
这个是 MySQL 下面,通过VIEW来实现的例子。
http://hi.baidu.com/wangzhiqing999/blog/item/767be28f634ddb00c8fc7aba.html
哪一个是基准的字段呢?
换句话说, 对于 A 表的
a1 a2 a3 a4 B5
1 1 2 2 2
是通过哪一个字段,去匹配 B 表的数据呢?
两表关联更新的例子, 不过是 SQL Server 版本的,仅供参考。
http://hi.baidu.com/wangzhiqing999/blog/item/0d6aaaf780a98b42352accd4.html
这个是 MySQL 下面,通过VIEW来实现的例子。
http://hi.baidu.com/wangzhiqing999/blog/item/767be28f634ddb00c8fc7aba.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询