首页 新闻 赞助 找找看

请教大牛们一个oracle语句。

0
悬赏园豆:100 [已解决问题] 解决于 2017-09-11 13:10

是这样的,我有表A,现在有个select 出来的集合B,还有表C,(因为insert目标表是2个,所以不能用merge into ps:或者哪个大牛有好办法。。求教。)我需要用表A的数据跟集合B数据, 根据字段a,b做判断(where A.a=B.a and A.b=B.b),如果表A有这条记录就insert 到表C,如果没有这个记录,就Insert到表A, 求教各位大牛 Insert all怎么写。。刚接触oracle 2天。希望大家能教教我。

雅兮的主页 雅兮 | 初学一级 | 园豆:14
提问于:2017-09-08 10:01
< >
分享
最佳答案
0

写一段plsql,写在存储过程里面就OK了。

收获园豆:25
数据酷软件 | 初学一级 |园豆:130 | 2017-09-08 15:01

我用的insert ALl 解决了,谢谢大家,每人25分

雅兮 | 园豆:14 (初学一级) | 2017-09-11 13:11
其他回答(3)
0

分成两部分,

1、A中有的,插入到C

2、A中没有的,插入到A

写这样两个SQL语句还是很简单啦

收获园豆:25
万里沙来手一挥 | 园豆:196 (初学一级) | 2017-09-08 14:29
0

我用的SQL Sever不知道Oracle有没有左连接这个功能,有的话就左连接两张表,然后用字段判断哪个为NULL哪个就插入C或A

收获园豆:25
姚刘乐 | 园豆:70 (初学一级) | 2017-09-08 16:19
0

敢不敢分成两句插入?你的逻辑也说得很明白。

第一句把匹配上的数据插入C表。第二句把匹配不上的数据插入A表。

至于方式:

1、可以直接用db存储过程,不是很推荐(这种简单逻辑,存储过程有点大材小用,而且存储过程本身不好调试与维护)。

2、直接在客户端发起两条语句,如果要保证一起成功或者失败,请在事务中操作(推荐)。

收获园豆:25
幻天芒 | 园豆:37175 (高人七级) | 2017-09-09 09:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册