A表和B表结构相同, col1,col2,col3,col4;(无主键)
现在希望比较两个表的数据,如果A表有的数据,B表没有,则把该条记录插入到B表;如果B表有的数据,A表没有,则希望更新B表该条数据的col4字段;
能够用一条SQl完成该任务吗?
现在希望比较两个表的数据,如果A表有的数据,B表没有,则把该条记录插入到B表;如果B表有的数据,A表没有,则希望更新B表该条数据的col4字段;
能够用一条SQl完成该任务吗?
解决方案 »
- oracle11g 连接报错连接时ORA-28056:Writing auidt records to windows Event log failed
- 两个数据库数据迁移
- 请高手解释一段代码
- 请问不用递归如何用一条sql查询树节点的所有嫡系祖先或所有嫡系后代
- 请问这个触发器如何写? 我已经想了一天了,搞的头疼,有点晕,中午也没吃饭
- 数据库安全问题
- 郁闷,一个超级简单的问题就把我困死了,只怪oracle的提示太没含义了。耽误大家一分钟来帮帮我!
- 新手提问:关于符合键字的查询问题,高手请指点啊!!真的急啊,过年都没休息的加班啊......
- 导数据问题
- 关于oracle 导入导出
- 请教大家一个两表查询优化问题
- 正则表达式
where exist
(
select aa.* from A aa
where not exists
(
select 1 from B bb where aa.col1=bb.col1 and aa.col2=bb.col2 and aa.col3=bb.col3 and aa.col4=bb.col4
)
)
INSERT INTO B
SELECT * FROM A WHERE NOT EXISTS (SELECT 1 FROM B WHERE A.主键 = B.主键);
UPDATE B SET COL4 = .. WHERE B.主键 =
SELECT B.主键 FROM B WHERE NOT EXISTS (SELECT 1 FROM A WHERE A.主键 = B.主键);
以下代碼請參考下吧
MERGER INTO B
USING A
ON(A.COL1 = B.COL1)
WHEN MATCHED THEN
UPDATE
SET B.COL2 =A.COL2,B.COL3=A.COL3,B.COL4=A.COL4
WHEN NOT MATCHED THEN
INSERT
VALUES(A.COL1.A.COL2,A.COL3,A.COL4)