两个表
sy1:
id grade
1 30
2 20
3 30
4 20sy2:
id grade
1 60
2 60
5 90
6 90怎么样把sy2表的grade更新到sy1表上,并且不能把sy1表的id为3 和4 的grade保持不变?
下面的语句会把id为3 和4 的grade置为空值
update sy1 a set grade=
(select b.grade from sy2 where b.id=a.id)
sy1:
id grade
1 30
2 20
3 30
4 20sy2:
id grade
1 60
2 60
5 90
6 90怎么样把sy2表的grade更新到sy1表上,并且不能把sy1表的id为3 和4 的grade保持不变?
下面的语句会把id为3 和4 的grade置为空值
update sy1 a set grade=
(select b.grade from sy2 where b.id=a.id)
解决方案 »
- 求透明网关配置
- 初来咋到。请交各位大侠。如何才学好PERL语言
- fedora 9 上oracle 10g 的em上的按钮显示乱码
- 在没有和服务器连接的oracle的客户端,怎样建立数据库??恳请赐教!!!
- 创建Oracle表
- 求一SQL
- 这
- 用pro c写的一个集成访问数据库的动态库(属于16位版本)。访问Oracle8i以下的版本没问题,访问Oracle8i以上版本出错,请教是什么原因?
- OMS已经配好,也可登入,无法通过Inteligence搜索器搜索到节点,提示"代理服务器已经删除",为什么?
- 各位大侠,Oracle错误,不知有没有人能解决这个问题
- ORA-01017???
- unix下备份出来的oracle10.2的库文件在gz后,解压缩后的DMP文件可以还原到windows系统的ORACLE库不
using (select id,name from b ) c
on(a.id=c.id )
when matched then update set a.name=c.name
when not matched then insert (a.id,a.name) values (c.id,c.name);
作用:将表 b 数据 更新到 表a ,条件是a.id=b.id,如果a表中有该条件的数据就修改,没有该条件的数据就插入。如果你的数据量很大,此sql效率非常高。
(select b.grade from sy2 b where b.id=a.id) where
exists (select 1 from sy2 c where c.id=a.id)
where exists (select 1 from sy2 b where a.id=b.id);
update sy1 a set grade=
(select b.grade from sy2 b where b.id=a.id) where
exists (select * from sy2 c where c.id=a.id)