一个比较绕的SQL导数据问题

huhu3785 2004-12-24 05:12:51
问题描述:A,B两表共有字段EMPLID,现想把B中字段FIELD2中内容导入A表中空字段FIELD1,条件 A.FIELD1=B.FIELD2,
在ORACLE数据库中如何用SQL语句实现这一功能?!

见者有份啊!!!!!!!!呵呵
...全文
150 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
supsuccess 2005-01-10
  • 打赏
  • 举报
回复
update a set a.FIELD1=B.FIELD2
where exists (select 1 from B where B.emplid=a.emplid)

-- 这样不能执行呀 !!!!
cate520 2004-12-27
  • 打赏
  • 举报
回复
Update A Set A.F1=B.F2 where a.a=b.a
ORARichard 2004-12-27
  • 打赏
  • 举报
回复
update a set field1= (select max(field2) from b where A.EMPLID = B.EMPLID) where exists(select 1 from b where A.EMPLID = B.EMPLID);

前面错了一点
ORARichard 2004-12-27
  • 打赏
  • 举报
回复
update a set field1= (select max(field2) from a,b where A.EMPLID = B.EMPLID) where exists(select 1 from b where A.EMPLID = B.EMPLID);

 如果你查询出的field2不唯一的话,你应该根据你的实际情况去选择是用什么样的值去更新field1

这里我是例举用最大值去更新
huhu3785 2004-12-27
  • 打赏
  • 举报
回复
呵呵,我是没表达清楚,应该是A.EMPLID=B.EMPLID,各位都看出来了!!!!!!!

但以上方法好像是只对单独一条记录有效,A,B表有多条符合A.EMPLID=B.EMPLID的记录,
执行以上指令,会提示记录不唯一.

各位看看有啥高招?!!!!!!!!! 稍等,下次再散分吧!!!! 呵呵
hxshxs 2004-12-26
  • 打赏
  • 举报
回复
自己可以写个存储过程
NinGoo 2004-12-25
  • 打赏
  • 举报
回复
yown 2004-12-25
  • 打赏
  • 举报
回复
这样比较简洁
Update A Set A.F1=B.F2
Where Exists (Select 1 From B Where B.ID=A.ID)
ORARichard 2004-12-25
  • 打赏
  • 举报
回复
这题目都没表达清楚哎

方法楼上的都不错。不过我更支持GerryYang(轻尘) 的

就不知道楼主到底要什么了
supsuccess 2004-12-25
  • 打赏
  • 举报
回复
不枉看这一页!
原来还可以这样:
Update A Set A.F1=B.F2
Where Exists (Select 1 From B Where B.ID=A.ID)
WorldMobile 2004-12-25
  • 打赏
  • 举报
回复
呵呵,doulikeme(来去无踪)和GerryYang(轻尘)都回答的挺好

所以我就接分吧
liuyi8903 2004-12-24
  • 打赏
  • 举报
回复
doulikeme(来去无踪)的回答更好!
GerryYang 2004-12-24
  • 打赏
  • 举报
回复
update a set a.FIELD1=B.FIELD2
where exists (select 1 from B where B.emplid=a.emplid)
doulikeme 2004-12-24
  • 打赏
  • 举报
回复
update a set field1= (select filed2 from a,b where A.EMPLID = B.EMPLID) where rowid in (select a.rowid from a,b where A.EMPLID = B.EMPLID)
wangybyangxr 2004-12-24
  • 打赏
  • 举报
回复
我假设你的两个表的关系为 A.EMPLID = B.EMPLID
wangybyangxr 2004-12-24
  • 打赏
  • 举报
回复
UPDATE A SET FIELD1= (SELECT FIELD2 FROM B WHERE A.EMPLID = B.EMPLID)
doulikeme 2004-12-24
  • 打赏
  • 举报
回复
A.FIELD1=B.FIELD2 ? 搞错了吧???

17,137

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧