用一个表的二个字段来修改另一个表的二个字段

u010877481 2013-05-29 11:20:15
比如A表, 五个字段 A1, A2, A3, A4, A5
B表, 四个字段 B1, B2, B3, B4

怎么样写一个SQL语句,当 A3=B3, A4=B4 时 用A1的值去修改B1,同时用A2的值修改B2

...全文
102 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010412956 2013-05-30
  • 打赏
  • 举报
回复
引用 5 楼 u010877481 的回复:
to hh7yx:你这种写法也有问题,没有加where 条件,会将A表中不符合条件的记录的相应字段改为空 update test_tmp A set (a2, a4 ) = ( select b2, b4 from test_tmp1 B where b1=A.a1 and b3=A.a3 ) where exists ( select 'X' from test_tmp1 B where b1=A.a1 and b3=A.a3 ) 这样写就正确了
软件钢琴师 2013-05-29
  • 打赏
  • 举报
回复
引用 1 楼 u010412956 的回复:
UPDATE B SET (B1,B2)=(SELECT A1,A2 FROM A WHERE B.B3=A.A3 AND B.B4=A.A4)
UPDATE B SET (B1,B2)=(SELECT A1,A2 FROM A WHERE B.B3=A.A3 AND B.B4=A.A4) where B.B3=A.A3 AND B.B4=A.A4
  • 打赏
  • 举报
回复
更新 或者赋值多字段时 都可以用括号、字段来实现
u010412956 2013-05-29
  • 打赏
  • 举报
回复
UPDATE B SET (B1,B2)=(SELECT A1,A2 FROM A WHERE B.B3=A.A3 AND B.B4=A.A4)
u010877481 2013-05-29
  • 打赏
  • 举报
回复
to hh7yx:你这种写法也有问题,没有加where 条件,会将A表中不符合条件的记录的相应字段改为空 update test_tmp A set (a2, a4 ) = ( select b2, b4 from test_tmp1 B where b1=A.a1 and b3=A.a3 ) where exists ( select 'X' from test_tmp1 B where b1=A.a1 and b3=A.a3 ) 这样写就正确了
u010877481 2013-05-29
  • 打赏
  • 举报
回复
软件钢琴师:你加了这一行,反而报错了. 报: A.A4 invalid identifier

17,140

社区成员

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

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