本节内容小编要和大家分享的是Oracle数据库更新(pdf格式免费版教程),想进行oracle学习,了解oracle数据库更新语句的小伙伴可以进行下载查阅哦!
温馨提示:
本文档为PDF格式文档,因此需确保在阅读之前你已经安装了PDF阅读器,如果尚未安装阅读器,建议下载福昕PDF阅读器或其他PDF阅读器,进行安装后阅读。
东坡学堂
Oracle数据库更新常见问题及解答
oracle数据库update语句的疑问——案例如下:
我在表A中的数据如下
name cou1 cou2 cou3 cou4
na1 1 null null null
na2 2 null null null
现在我需要从表B中想表A中更新数据,使用select语句从B中返回的结果集为
B_name B_cou1
na1 2
na2 3
我怎么才能使这个能够得到正确的添加?
我原来的语句是
update A set cou2=(select B_cou1 from B where(条件1)) where name=(select B_name from B where(条件1))
报错 返回值不止一行,求解应该怎么写SQL才能使得B中数据和正确更新到B中数据?
解答:
你的语句太混乱了,按照你的意思你需要明确几点。
1、使用b表数据更新a表,那么where条件是什么,也就是说,更新a表中哪些数据,用b表中的哪些数据更新,二者的关系是什么。从你的语句中我看不出b表和a表的关联。
2、找到关联条件后,通过关联条件查出的b表数据是否唯一,如果不唯一,还是会出现“返回值多于一行”的错误。
按照你的表结构和数据,假设A表和B表中的name列唯一,以name作为关联,可以这样写来实现你的更新目的:
update A set cou2 = (select B_cou1 from B where B.B_name = A.name) where name in (select B_name from B where B.B_name = A.name)
这条语句必须满足name在a、b表中唯一的条件,才能使用。
以上问答仅供参考!
更多教程资料下载,敬请关注东坡下载站!
- PC官方版
- 安卓官方手机版
- IOS官方手机版