oracle比较两张表数据并加标识

在oracle中有两张表A、B,两张表都有一个字段c,如果查询结果c相等,在查询出来的数据中添加一个标识flag等于0,反之flag等于1

第1个回答  2016-06-07
select t.id,case when
(select a.c from a, b where a.id = b.id and a.id=t.id) =
(select b.c from b,a where a.id = b.id and a.id=t.id)
then
'1'
else
'0'
end case
from a t;
,也可以使用存储过程及游标实现追问

这两张表其他所有字段都不相等的,而且查询出来的数据要显示表A、B中的某些字段

追答

所说的查询结果不相等的话也要显示ab表数据,显示A、B表结果怎么对应呢?比如说a表第一条记录中的c字段值在B表中不存在,那么查询的这条记录b表对应哪一条?

本回答被网友采纳
第2个回答  2016-06-08
SELECT DECODE(B.c,NULL,1,0),a.c FROM A,B
WHERE A.c=B.c(+)
UNION
SELECT DECODE(a.c,NULL,1,0),B.c FROM A,B
WHERE B.c=A.c(+)
相似回答